यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
जावास्क्रिप्ट स्क्रिप्ट नोड उपयोगकर्ताओं को एक वर्कफ़्लो के भीतर एक कस्टम सर्वर-साइड जावास्क्रिप्ट स्क्रिप्ट निष्पादित करने की अनुमति देता है। स्क्रिप्ट में, आप वर्कफ़्लो के ऊपरी स्ट्रीम से वेरिएबल्स को पैरामीटर के रूप में उपयोग कर सकते हैं, और स्क्रिप्ट का रिटर्न मान निचले स्ट्रीम के नोड्स को प्रदान किया जा सकता है।
यह स्क्रिप्ट NocoBase एप्लिकेशन के सर्वर पर एक वर्कर थ्रेड में चलती है और Node.js की अधिकांश विशेषताओं का समर्थन करती है। हालांकि, मूल निष्पादन वातावरण से कुछ अंतर हैं, जिनके विवरण के लिए विशेषताओं की सूची देखें।
वर्कफ़्लो कॉन्फ़िगरेशन इंटरफ़ेस में, फ़्लो में प्लस ("+") बटन पर क्लिक करके "जावास्क्रिप्ट" नोड जोड़ें:


स्क्रिप्ट में वर्कफ़्लो संदर्भ से वेरिएबल्स या स्टैटिक मान पास करने के लिए उपयोग किया जाता है, ताकि स्क्रिप्ट में कोड लॉजिक उनका उपयोग कर सके। इसमें name पैरामीटर का नाम होता है, जो स्क्रिप्ट में पास होने के बाद वेरिएबल का नाम बन जाता है। value पैरामीटर का मान होता है, जिसे आप वेरिएबल के रूप में चुन सकते हैं या एक स्थिरांक (constant) दर्ज कर सकते हैं।
स्क्रिप्ट सामग्री को एक फ़ंक्शन के रूप में देखा जा सकता है। आप Node.js वातावरण में समर्थित कोई भी जावास्क्रिप्ट कोड लिख सकते हैं, और return स्टेटमेंट का उपयोग करके नोड के निष्पादन परिणाम के रूप में एक मान वापस कर सकते हैं, जिसका उपयोग बाद के नोड्स द्वारा एक वेरिएबल के रूप में किया जा सकता है।
कोड लिखने के बाद, आप एडिटर के नीचे दिए गए टेस्ट बटन पर क्लिक करके टेस्ट निष्पादन डायलॉग खोल सकते हैं, जहाँ आप स्टैटिक मानों के साथ पैरामीटर भरकर एक सिमुलेटेड रन कर सकते हैं। निष्पादन के बाद, आप डायलॉग में रिटर्न मान और आउटपुट (लॉग) सामग्री देख सकते हैं।

इकाई मिलीसेकंड में है। जब इसे 0 पर सेट किया जाता है, तो इसका मतलब है कि कोई टाइमआउट सेट नहीं किया गया है।
यदि इसे चेक किया जाता है, तो स्क्रिप्ट में त्रुटि होने या टाइमआउट होने पर भी बाद के नोड्स निष्पादित होंगे।
यदि स्क्रिप्ट में त्रुटि होती है, तो इसका कोई रिटर्न मान नहीं होगा, और नोड का परिणाम त्रुटि संदेश से भर जाएगा। यदि बाद के नोड्स स्क्रिप्ट नोड के परिणाम वेरिएबल का उपयोग करते हैं, तो आपको सावधानी से काम लेना होगा।
मुख्य एप्लिकेशन द्वारा चलाए जा रहे Node.js वर्ज़न के समान।
स्क्रिप्ट में मॉड्यूल का सीमित उपयोग किया जा सकता है, जो CommonJS के अनुरूप है। कोड में मॉड्यूल को इम्पोर्ट करने के लिए require() निर्देश का उपयोग करें।
यह Node.js के नेटिव मॉड्यूल और node_modules में इंस्टॉल किए गए मॉड्यूल (NocoBase द्वारा पहले से उपयोग किए गए डिपेंडेंसी पैकेज सहित) का समर्थन करता है। कोड में उपयोग के लिए उपलब्ध कराए जाने वाले मॉड्यूल को एप्लिकेशन के एनवायरनमेंट वेरिएबल WORKFLOW_SCRIPT_MODULES में घोषित किया जाना चाहिए, जिसमें कई पैकेज नामों को अल्पविराम से अलग किया जाएगा, उदाहरण के लिए:
WORKFLOW_SCRIPT_MODULES एनवायरनमेंट वेरिएबल में घोषित न किए गए मॉड्यूल, भले ही वे Node.js के नेटिव हों या node_modules में पहले से इंस्टॉल हों, स्क्रिप्ट में उपयोग नहीं किए जा सकते। इस नीति का उपयोग ऑपरेशनल स्तर पर उपयोगकर्ताओं के लिए उपलब्ध मॉड्यूल की सूची को नियंत्रित करने के लिए किया जा सकता है, जिससे कुछ परिदृश्यों में स्क्रिप्ट को अत्यधिक अनुमतियाँ मिलने से रोका जा सके।
गैर-स्रोत-तैनात (non-source-deployed) वातावरण में, यदि कोई मॉड्यूल node_modules में इंस्टॉल नहीं है, तो आप आवश्यक पैकेज को मैन्युअल रूप से storage डायरेक्टरी में इंस्टॉल कर सकते हैं। उदाहरण के लिए, exceljs पैकेज का उपयोग करने के लिए, आप निम्नलिखित चरण कर सकते हैं:
फिर एप्लिकेशन के CWD (वर्तमान कार्य डायरेक्टरी) के आधार पर पैकेज का सापेक्ष (या पूर्ण) पाथ WORKFLOW_SCRIPT_MODULES एनवायरनमेंट वेरिएबल में जोड़ें:
इसके बाद आप अपनी स्क्रिप्ट में exceljs पैकेज का उपयोग कर सकते हैं:
global, process, __dirname, और __filename जैसे ग्लोबल वेरिएबल्स का समर्थन नहीं करता।
नोड में कॉन्फ़िगर किए गए पैरामीटर स्क्रिप्ट के भीतर ग्लोबल वेरिएबल्स बन जाते हैं और सीधे उपयोग किए जा सकते हैं। स्क्रिप्ट में पास किए गए पैरामीटर केवल बेसिक प्रकारों का समर्थन करते हैं, जैसे कि boolean, number, string, object, और एरे। एक Date ऑब्जेक्ट पास होने पर ISO फॉर्मेट स्ट्रिंग में परिवर्तित हो जाएगा। अन्य जटिल प्रकार, जैसे कस्टम क्लास के इंस्टेंस, सीधे पास नहीं किए जा सकते।
return स्टेटमेंट का उपयोग करके बेसिक डेटा प्रकारों (पैरामीटर नियमों के समान) को नोड पर परिणाम के रूप में वापस किया जा सकता है। यदि कोड में return स्टेटमेंट को कॉल नहीं किया जाता है, तो नोड निष्पादन का कोई रिटर्न मान नहीं होगा।
लॉग आउटपुट करने के लिए console का उपयोग करने का समर्थन करता है।
जब वर्कफ़्लो निष्पादित होता है, तो स्क्रिप्ट नोड का आउटपुट भी संबंधित वर्कफ़्लो की लॉग फ़ाइल में रिकॉर्ड किया जाता है।
एसिंक्रोनस फ़ंक्शंस को परिभाषित करने के लिए async का उपयोग करने और उन्हें कॉल करने के लिए await का उपयोग करने का समर्थन करता है। Promise ग्लोबल ऑब्जेक्ट का उपयोग करने का समर्थन करता है।
setTimeout, setInterval, या setImmediate जैसे तरीकों का उपयोग करने के लिए, आपको उन्हें Node.js के timers पैकेज से इम्पोर्ट करना होगा।