यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
NocoBase में, कमांड का इस्तेमाल कमांड लाइन के ज़रिए एप्लिकेशन या प्लगइन से जुड़े ऑपरेशंस को चलाने के लिए किया जाता है। इनमें सिस्टम टास्क चलाना, माइग्रेशन या सिंक ऑपरेशंस करना, कॉन्फ़िगरेशन को इनिशियलाइज़ करना या चल रहे एप्लिकेशन इंस्टेंस के साथ इंटरैक्ट करना शामिल है। डेवलपर्स प्लगइन के लिए कस्टम कमांड परिभाषित कर सकते हैं और उन्हें app ऑब्जेक्ट के ज़रिए रजिस्टर कर सकते हैं, जिन्हें CLI में nocobase <command> के रूप में चलाया जाता है।
NocoBase में, कमांड को रजिस्टर करने के दो मुख्य तरीके हैं:
| प्रकार | रजिस्ट्रेशन का तरीका | क्या प्लगइन को सक्षम करना ज़रूरी है? | सामान्य उपयोग के मामले |
|---|---|---|---|
| डायनामिक कमांड | app.command() | ✅ हाँ | प्लगइन के व्यावसायिक कार्यों से संबंधित कमांड |
| स्टैटिक कमांड | Application.registerStaticCommand() | ❌ नहीं | इंस्टॉलेशन, इनिशियलाइज़ेशन, रखरखाव से संबंधित कमांड |
app.command() का उपयोग करके प्लगइन कमांड को परिभाषित किया जाता है। ये कमांड तभी चलाए जा सकते हैं जब प्लगइन सक्षम हो। कमांड फ़ाइलें प्लगइन डायरेक्टरी के अंदर src/server/commands/*.ts में होनी चाहिए।
उदाहरण
विवरण
app.command('echo'): echo नाम का एक कमांड परिभाषित करता है।.option('-v, --version'): कमांड में एक विकल्प जोड़ता है।.action(): कमांड के निष्पादन तर्क (execution logic) को परिभाषित करता है।app.version.get(): वर्तमान एप्लिकेशन का संस्करण प्राप्त करता है।कमांड चलाएँ
Application.registerStaticCommand() का उपयोग करके रजिस्टर किए गए स्टैटिक कमांड को प्लगइन सक्षम किए बिना भी चलाया जा सकता है। ये इंस्टॉलेशन, इनिशियलाइज़ेशन, माइग्रेशन या डीबगिंग जैसे कार्यों के लिए उपयुक्त हैं। इन्हें प्लगइन क्लास के staticImport() मेथड में रजिस्टर किया जाता है।
उदाहरण
कमांड चलाएँ
विवरण
Application.registerStaticCommand() एप्लिकेशन के इंस्टेंशिएट होने से पहले कमांड को रजिस्टर करता है।कमांड ऑब्जेक्ट तीन वैकल्पिक सहायक मेथड प्रदान करते हैं, जिनका उपयोग कमांड के निष्पादन संदर्भ (execution context) को नियंत्रित करने के लिए किया जाता है:
| मेथड | उद्देश्य | उदाहरण |
|---|---|---|
ipc() | चल रहे एप्लिकेशन इंस्टेंस के साथ संचार करें (IPC के माध्यम से) | app.command('reload').ipc().action() |
auth() | डेटाबेस कॉन्फ़िगरेशन सही है या नहीं, इसकी पुष्टि करें | app.command('seed').auth().action() |
preload() | एप्लिकेशन कॉन्फ़िगरेशन को प्रीलोड करें (app.load() निष्पादित करें) | app.command('sync').preload().action() |
कॉन्फ़िगरेशन विवरण
ipc()
डिफ़ॉल्ट रूप से, कमांड एक नए एप्लिकेशन इंस्टेंस में निष्पादित होते हैं।
ipc() को सक्षम करने के बाद, कमांड इंटर-प्रोसेस कम्युनिकेशन (IPC) के माध्यम से वर्तमान में चल रहे एप्लिकेशन इंस्टेंस के साथ इंटरैक्ट करते हैं। यह रीयल-टाइम ऑपरेशन कमांड (जैसे कैश रीफ़्रेश करना, सूचनाएं भेजना) के लिए उपयुक्त है।
auth()
कमांड निष्पादित होने से पहले डेटाबेस कॉन्फ़िगरेशन की उपलब्धता की जाँच करें।
यदि डेटाबेस कॉन्फ़िगरेशन गलत है या कनेक्शन विफल हो जाता है, तो कमांड आगे निष्पादित नहीं होगा। इसका उपयोग आमतौर पर डेटाबेस में लिखने या पढ़ने से संबंधित कार्यों के लिए किया जाता है।
preload()
कमांड निष्पादित करने से पहले एप्लिकेशन कॉन्फ़िगरेशन को प्रीलोड करें, जो app.load() को निष्पादित करने के बराबर है।
यह उन कमांड के लिए उपयुक्त है जो कॉन्फ़िगरेशन या प्लगइन संदर्भ पर निर्भर करते हैं।
अधिक API मेथड के लिए, AppCommand देखें।
डिफ़ॉल्ट डेटा इनिशियलाइज़ करें
चल रहे इंस्टेंस के लिए कैश रीलोड करें (IPC मोड)
इंस्टॉलेशन कमांड का स्टैटिक रजिस्ट्रेशन