यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
NocoBase में, सर्वर प्लगइन (Server Plugin) सर्वर-साइड कार्यक्षमता को विस्तारित और अनुकूलित करने का एक मॉड्यूलर तरीका प्रदान करता है। डेवलपर्स @nocobase/server के Plugin क्लास का विस्तार करके, विभिन्न जीवनचक्र चरणों में इवेंट, API, अनुमति कॉन्फ़िगरेशन और अन्य कस्टम लॉजिक को रजिस्टर कर सकते हैं।
एक बुनियादी प्लगइन क्लास की संरचना इस प्रकार है:
प्लगइन की जीवनचक्र विधियाँ निम्नलिखित क्रम में निष्पादित होती हैं, प्रत्येक विधि का अपना विशिष्ट निष्पादन समय और उद्देश्य होता है:
| जीवनचक्र विधि | निष्पादन समय | विवरण |
|---|---|---|
| staticImport() | प्लगइन लोड होने से पहले | क्लास की स्टैटिक विधि, जो एप्लिकेशन या प्लगइन की स्थिति से स्वतंत्र प्रारंभिक चरण में निष्पादित होती है। इसका उपयोग उन प्रारंभिक कार्यों को करने के लिए किया जाता है जो प्लगइन इंस्टेंस पर निर्भर नहीं करते हैं। |
| afterAdd() | प्लगइन को प्लगइन मैनेजर में जोड़ने के तुरंत बाद निष्पादित होती है | इस समय प्लगइन इंस्टेंस बन चुका होता है, लेकिन सभी प्लगइन पूरी तरह से इनिशियलाइज़ नहीं हुए होते हैं। कुछ बुनियादी प्रारंभिक कार्य किए जा सकते हैं। |
| beforeLoad() | सभी प्लगइन के load() से पहले निष्पादित होती है | इस समय सभी सक्रिय प्लगइन इंस्टेंस तक पहुँचा जा सकता है। यह डेटाबेस मॉडल को रजिस्टर करने, डेटाबेस इवेंट्स को सुनने, मिडलवेयर को रजिस्टर करने और अन्य तैयारी के कार्यों के लिए उपयुक्त है। |
| load() | प्लगइन लोड होने पर निष्पादित होती है | सभी प्लगइन के beforeLoad() के निष्पादित होने के बाद ही load() निष्पादित होना शुरू होता है। यह संसाधनों, API इंटरफेस, सेवाओं और अन्य मुख्य व्यावसायिक लॉजिक को रजिस्टर करने के लिए उपयुक्त है। |
| install() | प्लगइन के पहली बार सक्रिय होने पर निष्पादित होती है | यह केवल एक बार, जब प्लगइन पहली बार सक्षम किया जाता है, तब निष्पादित होती है। आमतौर पर इसका उपयोग डेटाबेस टेबल संरचनाओं को इनिशियलाइज़ करने, प्रारंभिक डेटा डालने और अन्य इंस्टॉलेशन लॉजिक के लिए किया जाता है। |
| afterEnable() | प्लगइन के सक्षम होने के बाद निष्पादित होती है | यह हर बार प्लगइन सक्षम होने पर निष्पादित होती है, इसका उपयोग निर्धारित कार्यों (scheduled tasks) को शुरू करने, योजनाबद्ध कार्यों को रजिस्टर करने, कनेक्शन स्थापित करने और सक्षम होने के बाद की अन्य क्रियाओं के लिए किया जा सकता है। |
| afterDisable() | प्लगइन के अक्षम होने के बाद निष्पादित होती है | प्लगइन अक्षम होने पर निष्पादित होती है, इसका उपयोग संसाधनों को साफ करने, कार्यों को रोकने, कनेक्शन बंद करने और अन्य सफाई कार्यों के लिए किया जा सकता है। |
| remove() | प्लगइन हटाए जाने पर निष्पादित होती है | प्लगइन के पूरी तरह से हटाए जाने पर निष्पादित होती है, इसका उपयोग अनइंस्टॉलेशन लॉजिक लिखने के लिए किया जाता है, जैसे डेटाबेस टेबल हटाना, फ़ाइलें साफ करना आदि। |
| handleSyncMessage(message) | मल्टी-नोड डिप्लॉयमेंट में मैसेज सिंक्रोनाइज़ेशन | जब एप्लिकेशन मल्टी-नोड मोड में चलता है, तो इसका उपयोग अन्य नोड्स से सिंक्रोनाइज़ किए गए मैसेज को संभालने के लिए किया जाता है। |
जीवनचक्र विधियों का विशिष्ट निष्पादन प्रवाह:
staticImport()afterAdd() → beforeLoad() → load()afterAdd() → beforeLoad() → load() → install()afterAdd() → beforeLoad() → load()afterDisable() निष्पादित होता है।remove() निष्पादित होता है।प्लगइन डेवलपमेंट में, आप this.app के माध्यम से एप्लिकेशन इंस्टेंस द्वारा प्रदान की गई विभिन्न API तक पहुँच सकते हैं, जो प्लगइन कार्यक्षमता का विस्तार करने के लिए मुख्य इंटरफ़ेस है। app ऑब्जेक्ट में सिस्टम के विभिन्न कार्यात्मक मॉड्यूल शामिल हैं। डेवलपर्स व्यावसायिक आवश्यकताओं को पूरा करने के लिए प्लगइन जीवनचक्र विधियों में इन मॉड्यूल का उपयोग कर सकते हैं।
| सदस्य का नाम | प्रकार/मॉड्यूल | मुख्य उद्देश्य |
|---|---|---|
| logger | Logger | सिस्टम लॉग रिकॉर्ड करता है, विभिन्न स्तरों (info, warn, error, debug) के लॉग आउटपुट का समर्थन करता है, जो डिबगिंग और निगरानी के लिए सुविधाजनक है। विस्तृत जानकारी के लिए लॉगर देखें। |
| db | Database | ORM लेयर ऑपरेशंस, मॉडल रजिस्ट्रेशन, इवेंट लिसनिंग, ट्रांजैक्शन कंट्रोल और अन्य डेटाबेस-संबंधित कार्य प्रदान करता है। विस्तृत जानकारी के लिए डेटाबेस देखें। |
| resourceManager | ResourceManager | REST API संसाधनों और ऑपरेशन हैंडलर्स को रजिस्टर और प्रबंधित करने के लिए उपयोग किया जाता है। विस्तृत जानकारी के लिए संसाधन प्रबंधन देखें। |
| acl | ACL | एक्सेस कंट्रोल लेयर, जिसका उपयोग अनुमतियों, भूमिकाओं और संसाधन एक्सेस नीतियों को परिभाषित करने के लिए किया जाता है, जिससे बारीक-दानेदार (fine-grained) अनुमति नियंत्रण लागू होता है। विस्तृत जानकारी के लिए अनुमति नियंत्रण देखें। |
| cacheManager | CacheManager | सिस्टम-स्तरीय कैश का प्रबंधन करता है, Redis, मेमोरी कैश और अन्य कई कैश बैकएंड का समर्थन करता है, जिससे एप्लिकेशन का प्रदर्शन बेहतर होता है। विस्तृत जानकारी के लिए कैश देखें। |
| cronJobManager | CronJobManager | निर्धारित कार्यों (scheduled tasks) को रजिस्टर करने, शुरू करने और प्रबंधित करने के लिए उपयोग किया जाता है, Cron एक्सप्रेशन कॉन्फ़िगरेशन का समर्थन करता है। विस्तृत जानकारी के लिए निर्धारित कार्य देखें। |
| i18n | I18n | अंतर्राष्ट्रीयकरण समर्थन, बहु-भाषा अनुवाद और स्थानीयकरण कार्यक्षमता प्रदान करता है, जिससे प्लगइन के लिए बहु-भाषा समर्थन करना सुविधाजनक होता है। विस्तृत जानकारी के लिए अंतर्राष्ट्रीयकरण देखें। |
| cli | CLI | कमांड-लाइन इंटरफ़ेस का प्रबंधन करता है, कस्टम कमांड को रजिस्टर और निष्पादित करता है, NocoBase CLI कार्यक्षमता का विस्तार करता है। विस्तृत जानकारी के लिए कमांड-लाइन देखें। |
| dataSourceManager | DataSourceManager | कई डेटा स्रोत इंस्टेंस और उनके कनेक्शन का प्रबंधन करता है, मल्टी-डेटा-स्रोत परिदृश्यों का समर्थन करता है। विस्तृत जानकारी के लिए डेटा स्रोत प्रबंधन देखें। |
| pm | PluginManager | प्लगइन मैनेजर, जिसका उपयोग प्लगइन को गतिशील रूप से लोड करने, सक्षम करने, अक्षम करने और हटाने, तथा प्लगइन के बीच निर्भरता (dependencies) को प्रबंधित करने के लिए किया जाता है। |
टिप: प्रत्येक मॉड्यूल के विस्तृत उपयोग के लिए, कृपया संबंधित दस्तावेज़ अध्यायों को देखें।