यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
NocoBase का सर्वर (Server) एप्लीकेशन के जीवनचक्र, प्लगइन के जीवनचक्र और डेटाबेस ऑपरेशंस जैसे विभिन्न चरणों में संबंधित इवेंट (घटनाएँ) ट्रिगर करता है। प्लगइन डेवलपर इन इवेंट्स को सुनकर एक्सटेंशन लॉजिक, ऑटोमेटेड ऑपरेशंस या कस्टम व्यवहार लागू कर सकते हैं।
NocoBase का इवेंट सिस्टम मुख्य रूप से दो स्तरों में विभाजित है:
app.on() - एप्लीकेशन-स्तरीय इवेंट: एप्लीकेशन के जीवनचक्र इवेंट्स को सुनें, जैसे कि स्टार्ट होना, इंस्टॉल होना, प्लगइन को सक्षम करना आदि।db.on() - डेटाबेस-स्तरीय इवेंट: डेटा मॉडल स्तर पर होने वाले ऑपरेशंस इवेंट्स को सुनें, जैसे कि रिकॉर्ड बनाना, अपडेट करना, हटाना आदि।ये दोनों Node.js के EventEmitter से इनहेरिट होते हैं और स्टैंडर्ड .on(), .off(), .emit() इंटरफेस का उपयोग करने का समर्थन करते हैं। NocoBase ने emitAsync के लिए भी समर्थन बढ़ाया है, जिसका उपयोग इवेंट्स को एसिंक्रोनस रूप से ट्रिगर करने और सभी लिसनर्स के निष्पादन पूरा होने तक प्रतीक्षा करने के लिए किया जाता है।
इवेंट लिसनर्स को आमतौर पर प्लगइन के beforeLoad() मेथड में रजिस्टर किया जाना चाहिए। यह सुनिश्चित करता है कि प्लगइन लोड होने के चरण के दौरान ही इवेंट्स तैयार हों, और बाद का लॉजिक सही ढंग से प्रतिक्रिया दे सके।
app.on() को सुनेंएप्लीकेशन इवेंट्स का उपयोग NocoBase एप्लीकेशन और प्लगइन के जीवनचक्र परिवर्तनों को कैप्चर करने के लिए किया जाता है। ये इनिशियलाइज़ेशन लॉजिक, रिसोर्स रजिस्ट्रेशन या प्लगइन डिपेंडेंसी डिटेक्शन जैसे कार्यों के लिए उपयुक्त हैं।
| इवेंट का नाम | ट्रिगर होने का समय | सामान्य उपयोग |
|---|---|---|
beforeLoad / afterLoad | एप्लीकेशन लोड होने से पहले / बाद में | रिसोर्स रजिस्टर करें, कॉन्फ़िगरेशन इनिशियलाइज़ करें |
beforeStart / afterStart | सर्विस स्टार्ट होने से पहले / बाद में | टास्क स्टार्ट करें, स्टार्टअप लॉग प्रिंट करें |
beforeInstall / afterInstall | एप्लीकेशन इंस्टॉल होने से पहले / बाद में | डेटा इनिशियलाइज़ करें, टेम्पलेट इम्पोर्ट करें |
beforeStop / afterStop | सर्विस बंद होने से पहले / बाद में | रिसोर्स साफ़ करें, स्थिति सेव करें |
beforeDestroy / afterDestroy | एप्लीकेशन नष्ट होने से पहले / बाद में | कैश डिलीट करें, कनेक्शन डिस्कनेक्ट करें |
beforeLoadPlugin / afterLoadPlugin | प्लगइन लोड होने से पहले / बाद में | प्लगइन कॉन्फ़िगरेशन संशोधित करें या कार्यक्षमता बढ़ाएँ |
beforeEnablePlugin / afterEnablePlugin | प्लगइन सक्षम होने से पहले / बाद में | डिपेंडेंसी चेक करें, प्लगइन लॉजिक इनिशियलाइज़ करें |
beforeDisablePlugin / afterDisablePlugin | प्लगइन अक्षम होने से पहले / बाद में | प्लगइन रिसोर्स साफ़ करें |
afterUpgrade | एप्लीकेशन अपग्रेड पूरा होने के बाद | डेटा माइग्रेशन या कंपैटिबिलिटी फिक्स लागू करें |
उदाहरण: एप्लीकेशन स्टार्ट होने के इवेंट को सुनें
उदाहरण: प्लगइन लोड होने के इवेंट को सुनें
db.on() को सुनेंडेटाबेस इवेंट्स मॉडल स्तर पर विभिन्न डेटा परिवर्तनों को कैप्चर कर सकते हैं, जो ऑडिटिंग, सिंक्रोनाइज़ेशन, ऑटो-फिलिंग और अन्य ऑपरेशंस के लिए उपयुक्त हैं।
| इवेंट का नाम | ट्रिगर होने का समय |
|---|---|
beforeSync / afterSync | डेटाबेस संरचना को सिंक्रोनाइज़ करने से पहले / बाद में |
beforeValidate / afterValidate | डेटा सत्यापन से पहले / बाद में |
beforeCreate / afterCreate | रिकॉर्ड बनाने से पहले / बाद में |
beforeUpdate / afterUpdate | रिकॉर्ड अपडेट करने से पहले / बाद में |
beforeSave / afterSave | सेव करने से पहले / बाद में (बनाना और अपडेट करना शामिल है) |
beforeDestroy / afterDestroy | रिकॉर्ड हटाने से पहले / बाद में |
afterCreateWithAssociations / afterUpdateWithAssociations / afterSaveWithAssociations | संबंधित डेटा वाले ऑपरेशंस के बाद |
beforeDefineCollection / afterDefineCollection | संग्रह को परिभाषित करने से पहले / बाद में |
beforeRemoveCollection / afterRemoveCollection | संग्रह हटाने से पहले / बाद में |
उदाहरण: डेटा बनने के बाद के इवेंट को सुनें
उदाहरण: डेटा अपडेट होने से पहले के इवेंट को सुनें