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 PageDataSourceManager डेटा सोर्स प्रबंधन
TIP

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

#डेटाबेस

Database डेटाबेस-प्रकार के डेटा स्रोत (DataSource) का एक महत्वपूर्ण हिस्सा है। हर डेटाबेस-प्रकार के डेटा स्रोत का एक संबंधित Database इंस्टेंस होता है, जिसे dataSource.db के ज़रिए एक्सेस किया जा सकता है। मुख्य डेटा स्रोत का डेटाबेस इंस्टेंस एक सुविधाजनक app.db उपनाम (alias) भी प्रदान करता है। db के सामान्य तरीकों से परिचित होना सर्वर-साइड प्लगइन लिखने का आधार है।

#डेटाबेस के घटक

एक सामान्य Database में निम्नलिखित भाग होते हैं:

  • संग्रह (Collection): डेटा तालिका (table) की संरचना को परिभाषित करता है।
  • मॉडल (Model): ORM मॉडल से मेल खाता है (जो आमतौर पर Sequelize द्वारा प्रबंधित होता है)।
  • रिपॉज़िटरी (Repository): डेटा एक्सेस लॉजिक को समाहित करने वाली रिपॉज़िटरी परत, जो उच्च-स्तरीय ऑपरेशन के तरीके प्रदान करती है।
  • फ़ील्ड प्रकार (FieldType): फ़ील्ड के प्रकार।
  • फ़िल्टर ऑपरेटर (FilterOperator): फ़िल्टरिंग के लिए उपयोग किए जाने वाले ऑपरेटर।
  • इवेंट (Event): जीवनचक्र इवेंट और डेटाबेस इवेंट।

#प्लगइन में उपयोग का समय

#beforeLoad चरण के लिए उपयुक्त कार्य

इस चरण में डेटाबेस ऑपरेशन की अनुमति नहीं है। यह स्टैटिक क्लास के पंजीकरण या इवेंट सुनने के लिए उपयुक्त है।

  • db.registerFieldTypes() — कस्टम फ़ील्ड प्रकार
  • db.registerModels() — कस्टम मॉडल क्लास पंजीकृत करें
  • db.registerRepositories() — कस्टम रिपॉज़िटरी क्लास पंजीकृत करें
  • db.registerOperators() — कस्टम फ़िल्टर ऑपरेटर पंजीकृत करें
  • db.on() — डेटाबेस से संबंधित इवेंट सुनें

#load चरण के लिए उपयुक्त कार्य

इस चरण में, सभी पिछली क्लास परिभाषाएँ और इवेंट लोड हो चुके होते हैं, इसलिए डेटा तालिकाओं को लोड करने पर कोई कमी या छूट नहीं होगी।

  • db.defineCollection() — नई डेटा तालिकाएँ परिभाषित करें
  • db.extendCollection() — मौजूदा डेटा तालिका कॉन्फ़िगरेशन का विस्तार करें

यदि प्लगइन की अंतर्निहित तालिकाओं को परिभाषित करने के लिए है, तो उन्हें ./src/server/collections डायरेक्टरी में रखना अधिक अनुशंसित है। विवरण के लिए, संग्रह (Collections) देखें।

#डेटा ऑपरेशन

Database डेटा को एक्सेस और ऑपरेट करने के दो मुख्य तरीके प्रदान करता है:

#रिपॉज़िटरी के माध्यम से ऑपरेशन

const repo = db.getRepository('users');
const user = await repo.findOne({ filter: { id: 1 } });

रिपॉज़िटरी परत का उपयोग आमतौर पर व्यावसायिक लॉजिक को समाहित करने के लिए किया जाता है, जैसे पेजिंग, फ़िल्टरिंग, अनुमति जाँच आदि।

#मॉडल के माध्यम से ऑपरेशन

const UserModel = db.getModel('users');
const user = await UserModel.findByPk(1);

मॉडल परत सीधे ORM एंटिटी से मेल खाती है, जो निचले-स्तर के डेटाबेस ऑपरेशन करने के लिए उपयुक्त है।

#किन चरणों में डेटाबेस ऑपरेशन की अनुमति है?

#प्लगइन जीवनचक्र

चरणडेटाबेस ऑपरेशन की अनुमति है
staticImportनहीं
afterAddनहीं
beforeLoadनहीं
loadनहीं
installहाँ
beforeEnableहाँ
afterEnableहाँ
beforeDisableहाँ
afterDisableहाँ
removeहाँ
handleSyncMessageहाँ

#ऐप इवेंट

चरणडेटाबेस ऑपरेशन की अनुमति है
beforeLoadनहीं
afterLoadनहीं
beforeStartहाँ
afterStartहाँ
beforeInstallनहीं
afterInstallहाँ
beforeStopहाँ
afterStopनहीं
beforeDestroyहाँ
afterDestroyनहीं
beforeLoadPluginनहीं
afterLoadPluginनहीं
beforeEnablePluginहाँ
afterEnablePluginहाँ
beforeDisablePluginहाँ
afterDisablePluginहाँ
afterUpgradeहाँ

#डेटाबेस इवेंट/हुक

चरणडेटाबेस ऑपरेशन की अनुमति है
beforeSyncनहीं
afterSyncहाँ
beforeValidateहाँ
afterValidateहाँ
beforeCreateहाँ
afterCreateहाँ
beforeUpdateहाँ
afterUpdateहाँ
beforeSaveहाँ
afterSaveहाँ
beforeDestroyहाँ
afterDestroyहाँ
afterCreateWithAssociationsहाँ
afterUpdateWithAssociationsहाँ
afterSaveWithAssociationsहाँ
beforeDefineCollectionनहीं
afterDefineCollectionनहीं
beforeRemoveCollectionनहीं
afterRemoveCollectionनहीं