logologo
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
logologo

क्विक स्टार्ट

Plugin डेवलपमेंट अवलोकन
अपना पहला Plugin लिखें
प्रोजेक्ट डायरेक्टरी स्ट्रक्चर

सर्वर-साइड डेवलपमेंट

अवलोकन
Plugin
कलेक्शन डेटा टेबल
डेटाबेस ऑपरेशन
DataSourceManager डेटा सोर्स प्रबंधन
ResourceManager रिसोर्स प्रबंधन
ACL परमिशन कंट्रोल
Middleware
Cache
Event
Context रिक्वेस्ट कॉन्टेक्स्ट
माइग्रेशन अपग्रेड स्क्रिप्ट
Logger
Telemetry
I18n इंटरनेशनलाइजेशन
Command लाइन
CronJobManager शेड्यूल्ड टास्क प्रबंधन
Test

क्लाइंट-साइड डेवलपमेंट

अवलोकन
Plugin
Context
Router
ACL परमिशन कंट्रोल
DataSourceManager डेटा सोर्स प्रबंधन
Resource
Request
Styles & Themes
Logger
I18n इंटरनेशनलाइजेशन
Test

अन्य

Plugin अपग्रेड गाइड
भाषा सूची
डिपेंडेंसी प्रबंधन
बिल्ड
Previous Pageअवलोकन
Next Pageकलेक्शन डेटा टेबल
TIP

यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें

#प्लगइन

NocoBase में, सर्वर प्लगइन (Server Plugin) सर्वर-साइड कार्यक्षमता को विस्तारित और अनुकूलित करने का एक मॉड्यूलर तरीका प्रदान करता है। डेवलपर्स @nocobase/server के Plugin क्लास का विस्तार करके, विभिन्न जीवनचक्र चरणों में इवेंट, API, अनुमति कॉन्फ़िगरेशन और अन्य कस्टम लॉजिक को रजिस्टर कर सकते हैं।

#प्लगइन क्लास

एक बुनियादी प्लगइन क्लास की संरचना इस प्रकार है:

import { Plugin } from '@nocobase/server';

export class PluginHelloServer extends Plugin {
  async afterAdd() {}

  async beforeLoad() {}

  async load() {}

  async install() {}

  async afterEnable() {}

  async afterDisable() {}

  async remove() {}

  async handleSyncMessage(message: Record<string, any>) {}

  static async staticImport() {}
}

export default PluginHelloServer;

#जीवनचक्र

प्लगइन की जीवनचक्र विधियाँ निम्नलिखित क्रम में निष्पादित होती हैं, प्रत्येक विधि का अपना विशिष्ट निष्पादन समय और उद्देश्य होता है:

जीवनचक्र विधिनिष्पादन समयविवरण
staticImport()प्लगइन लोड होने से पहलेक्लास की स्टैटिक विधि, जो एप्लिकेशन या प्लगइन की स्थिति से स्वतंत्र प्रारंभिक चरण में निष्पादित होती है। इसका उपयोग उन प्रारंभिक कार्यों को करने के लिए किया जाता है जो प्लगइन इंस्टेंस पर निर्भर नहीं करते हैं।
afterAdd()प्लगइन को प्लगइन मैनेजर में जोड़ने के तुरंत बाद निष्पादित होती हैइस समय प्लगइन इंस्टेंस बन चुका होता है, लेकिन सभी प्लगइन पूरी तरह से इनिशियलाइज़ नहीं हुए होते हैं। कुछ बुनियादी प्रारंभिक कार्य किए जा सकते हैं।
beforeLoad()सभी प्लगइन के load() से पहले निष्पादित होती हैइस समय सभी सक्रिय प्लगइन इंस्टेंस तक पहुँचा जा सकता है। यह डेटाबेस मॉडल को रजिस्टर करने, डेटाबेस इवेंट्स को सुनने, मिडलवेयर को रजिस्टर करने और अन्य तैयारी के कार्यों के लिए उपयुक्त है।
load()प्लगइन लोड होने पर निष्पादित होती हैसभी प्लगइन के beforeLoad() के निष्पादित होने के बाद ही load() निष्पादित होना शुरू होता है। यह संसाधनों, API इंटरफेस, सेवाओं और अन्य मुख्य व्यावसायिक लॉजिक को रजिस्टर करने के लिए उपयुक्त है।
install()प्लगइन के पहली बार सक्रिय होने पर निष्पादित होती हैयह केवल एक बार, जब प्लगइन पहली बार सक्षम किया जाता है, तब निष्पादित होती है। आमतौर पर इसका उपयोग डेटाबेस टेबल संरचनाओं को इनिशियलाइज़ करने, प्रारंभिक डेटा डालने और अन्य इंस्टॉलेशन लॉजिक के लिए किया जाता है।
afterEnable()प्लगइन के सक्षम होने के बाद निष्पादित होती हैयह हर बार प्लगइन सक्षम होने पर निष्पादित होती है, इसका उपयोग निर्धारित कार्यों (scheduled tasks) को शुरू करने, योजनाबद्ध कार्यों को रजिस्टर करने, कनेक्शन स्थापित करने और सक्षम होने के बाद की अन्य क्रियाओं के लिए किया जा सकता है।
afterDisable()प्लगइन के अक्षम होने के बाद निष्पादित होती हैप्लगइन अक्षम होने पर निष्पादित होती है, इसका उपयोग संसाधनों को साफ करने, कार्यों को रोकने, कनेक्शन बंद करने और अन्य सफाई कार्यों के लिए किया जा सकता है।
remove()प्लगइन हटाए जाने पर निष्पादित होती हैप्लगइन के पूरी तरह से हटाए जाने पर निष्पादित होती है, इसका उपयोग अनइंस्टॉलेशन लॉजिक लिखने के लिए किया जाता है, जैसे डेटाबेस टेबल हटाना, फ़ाइलें साफ करना आदि।
handleSyncMessage(message)मल्टी-नोड डिप्लॉयमेंट में मैसेज सिंक्रोनाइज़ेशनजब एप्लिकेशन मल्टी-नोड मोड में चलता है, तो इसका उपयोग अन्य नोड्स से सिंक्रोनाइज़ किए गए मैसेज को संभालने के लिए किया जाता है।

#निष्पादन क्रम का विवरण

जीवनचक्र विधियों का विशिष्ट निष्पादन प्रवाह:

  1. स्टैटिक इनिशियलाइज़ेशन चरण: staticImport()
  2. एप्लिकेशन स्टार्टअप चरण: afterAdd() → beforeLoad() → load()
  3. प्लगइन का पहला सक्रियण चरण: afterAdd() → beforeLoad() → load() → install()
  4. प्लगइन का दूसरा सक्रियण चरण: afterAdd() → beforeLoad() → load()
  5. प्लगइन अक्षम करने का चरण: प्लगइन अक्षम होने पर afterDisable() निष्पादित होता है।
  6. प्लगइन हटाने का चरण: प्लगइन हटाए जाने पर remove() निष्पादित होता है।

#app और संबंधित सदस्य

प्लगइन डेवलपमेंट में, आप this.app के माध्यम से एप्लिकेशन इंस्टेंस द्वारा प्रदान की गई विभिन्न API तक पहुँच सकते हैं, जो प्लगइन कार्यक्षमता का विस्तार करने के लिए मुख्य इंटरफ़ेस है। app ऑब्जेक्ट में सिस्टम के विभिन्न कार्यात्मक मॉड्यूल शामिल हैं। डेवलपर्स व्यावसायिक आवश्यकताओं को पूरा करने के लिए प्लगइन जीवनचक्र विधियों में इन मॉड्यूल का उपयोग कर सकते हैं।

#app सदस्य सूची

सदस्य का नामप्रकार/मॉड्यूलमुख्य उद्देश्य
loggerLoggerसिस्टम लॉग रिकॉर्ड करता है, विभिन्न स्तरों (info, warn, error, debug) के लॉग आउटपुट का समर्थन करता है, जो डिबगिंग और निगरानी के लिए सुविधाजनक है। विस्तृत जानकारी के लिए लॉगर देखें।
dbDatabaseORM लेयर ऑपरेशंस, मॉडल रजिस्ट्रेशन, इवेंट लिसनिंग, ट्रांजैक्शन कंट्रोल और अन्य डेटाबेस-संबंधित कार्य प्रदान करता है। विस्तृत जानकारी के लिए डेटाबेस देखें।
resourceManagerResourceManagerREST API संसाधनों और ऑपरेशन हैंडलर्स को रजिस्टर और प्रबंधित करने के लिए उपयोग किया जाता है। विस्तृत जानकारी के लिए संसाधन प्रबंधन देखें।
aclACLएक्सेस कंट्रोल लेयर, जिसका उपयोग अनुमतियों, भूमिकाओं और संसाधन एक्सेस नीतियों को परिभाषित करने के लिए किया जाता है, जिससे बारीक-दानेदार (fine-grained) अनुमति नियंत्रण लागू होता है। विस्तृत जानकारी के लिए अनुमति नियंत्रण देखें।
cacheManagerCacheManagerसिस्टम-स्तरीय कैश का प्रबंधन करता है, Redis, मेमोरी कैश और अन्य कई कैश बैकएंड का समर्थन करता है, जिससे एप्लिकेशन का प्रदर्शन बेहतर होता है। विस्तृत जानकारी के लिए कैश देखें।
cronJobManagerCronJobManagerनिर्धारित कार्यों (scheduled tasks) को रजिस्टर करने, शुरू करने और प्रबंधित करने के लिए उपयोग किया जाता है, Cron एक्सप्रेशन कॉन्फ़िगरेशन का समर्थन करता है। विस्तृत जानकारी के लिए निर्धारित कार्य देखें।
i18nI18nअंतर्राष्ट्रीयकरण समर्थन, बहु-भाषा अनुवाद और स्थानीयकरण कार्यक्षमता प्रदान करता है, जिससे प्लगइन के लिए बहु-भाषा समर्थन करना सुविधाजनक होता है। विस्तृत जानकारी के लिए अंतर्राष्ट्रीयकरण देखें।
cliCLIकमांड-लाइन इंटरफ़ेस का प्रबंधन करता है, कस्टम कमांड को रजिस्टर और निष्पादित करता है, NocoBase CLI कार्यक्षमता का विस्तार करता है। विस्तृत जानकारी के लिए कमांड-लाइन देखें।
dataSourceManagerDataSourceManagerकई डेटा स्रोत इंस्टेंस और उनके कनेक्शन का प्रबंधन करता है, मल्टी-डेटा-स्रोत परिदृश्यों का समर्थन करता है। विस्तृत जानकारी के लिए डेटा स्रोत प्रबंधन देखें।
pmPluginManagerप्लगइन मैनेजर, जिसका उपयोग प्लगइन को गतिशील रूप से लोड करने, सक्षम करने, अक्षम करने और हटाने, तथा प्लगइन के बीच निर्भरता (dependencies) को प्रबंधित करने के लिए किया जाता है।

टिप: प्रत्येक मॉड्यूल के विस्तृत उपयोग के लिए, कृपया संबंधित दस्तावेज़ अध्यायों को देखें।