2012-02-02 15 views
8

से नोड-जेएस चलाएं किसी ने भी node.js मॉड्यूल या जावा या ग्रोवी से स्क्रिप्ट को चलाने के तरीके पर प्रयोग किया है?जावा या ग्रोवी

groovy command.execute() क्या कर सकता है? यदि ऐसा है तो क्या यह अलग-अलग ओप sys में समान व्यवहार करेगा।

वर्थ नोटिंग आदर्श रूप से है, मुझे लगता है कि node.js को सिस्टम और नोड कमांड में इंस्टॉलेशन पर निर्भर नहीं किया जाएगा, लेकिन ./configure के माध्यम से पैक किया गया है, और इसे लाइब्रेरी के रूप में उपयोग किया जा सकता है। ।

धन्यवाद

संपादित करें: मूल रूप से मैं यह चाहता हूँ ताकि मैं Node.js मॉड्यूल, एक ग्राहक के पक्ष ढांचे इस्तेमाल कर सकते हैं (कॉफी स्क्रिप्ट, जेड, लेखनी आदि और यह ब्रंच में bundeled है) एक के रूप में, Grails प्लगइन। ताकि प्लगइन कोई सिस्टम निर्भरता के साथ स्वयं निहित है।

+2

मुझे नहीं पता कि लोग जावा, नेट से नोडजेज़ क्यों चलाना चाहते हैं? सबसे पहले पढ़ें कि नोडजे क्या करता है और हल करता है। – Prashanth

+1

मुझे नहीं पता कि आप कौन से अन्य लोगों का जिक्र कर रहे हैं, लेकिन इस मामले में, जोर कई प्लेटफॉर्म पर निरंतर node.js चाहता है। मैंने इसे अपने प्रश्न पढ़ने से विभाजित किया। – Nicholas

+0

कहें कि आपके पास एक बड़ा Grails ऐप और एक बड़ी नोडज लाइब्रेरी है जो आपको चाहिए - दोनों विभिन्न एपीआई लागू करने के वर्षों के साथ काम करते हैं। फिर आपको जावा से नोडज चलाने की जरूरत है। –

उत्तर

9

आप जो भी खोज रहे हैं उसे vert.x में मिल सकता है।

साइट से:

vert.x क्या है?

अगली पीढ़ी पॉलीग्लोट एसिंक्रोनस एप्लिकेशन फ्रेमवर्क। (पूर्व में node.x के रूप में जाना जाता है)

  • जेवीएम पर चलता है।
  • घटना संचालित ढांचे के अच्छे बिट्स को नोड.जेएस जैसे गले लगाते हैं तो कुछ भी juicier बिट्स जोड़ता है।
  • सबकुछ गैर-अवरुद्ध है।
  • पॉलीग्लॉट। vert.x कई भाषाओं से प्रयोग योग्य होगा: रुबी, ग्रोवी, जावा, जावास्क्रिप्ट, पायथन, क्लोजर, स्कैला। वर्तमान में हम जावा और रूबी का समर्थन करते हैं और आंशिक ग्रोवी समर्थन करते हैं। अपनी पसंद की भाषा में अपना कोड लिखें। उस भाषा से vert.x की शक्ति का लाभ उठाएं।
  • जावा 7 में InvokeDynamic के साथ हालिया घटनाओं के साथ जाता है और जेवीएम पर गतिशील भाषाओं के लिए भविष्य के प्रमुख रनटाइम होने पर दांव लगाता है।
  • आपको नेटवर्क सर्वर या क्लाइंट को अविश्वसनीय रूप से आसानी से बनाने में सक्षम बनाता है।
  • सही मापनीयता। अन्य प्रसिद्ध घटना-संचालित ढांचे के विपरीत, आपके पास प्रति प्रक्रिया एक से अधिक ईवेंट लूप हो सकते हैं। अपने सर्वर पर कोर का उपयोग करने के लिए 32 उदाहरणों को और कताई नहीं करना।
  • अविश्वसनीय रूप से सरल समरूपता मॉडल। अपना कोड सिंगल थ्रेडेड के रूप में लिखें लेकिन इसे कई कोरों में स्केल करें। दौड़ की स्थिति या ताले के बारे में चिंता करने की कोई ज़रूरत नहीं है।
  • बॉक्स से बाहर कई नेटवर्क प्रोटोकॉल को समझता है जिनमें शामिल हैं: टीसीपी, एसएसएल, HTTP, HTTPS, Websockets।
  • उपयोगकर्ता-स्थान को पूरी तरह से बाईपास करने से फाइल सिस्टम से स्थैतिक फाइलों को कुशलता से सेवा प्रदान करते हैं।
  • सरल सिनात्रा/एक्सप्रेस शैली संसाधन आधारित वेब रूटिंग।
  • वितरित घटना बस। एकाधिक vert.x उदाहरणों एक साथ समेकित रूप से काम एक वितरित घटना बस प्रदान करने के लिए
  • SockJS समर्थन
3

हाँ, आप कर सकते हैं बस command.execute()

एक और अधिक सुरुचिपूर्ण तरीका एक छोटे से नोड के निर्माण के लिए हो सकता है .js सर्वर जो केवल स्थानीयहोस्ट से अनुरोध स्वीकार करता है।लेकिन यह groovy काम करता है:

def file = new File("script.js") 
    def fileStream = file.newOutputStream() 
    fileStream << "console.log('hello from node.js');" 
    fileStream.close() 

    def command = "/usr/local/bin/node " + file.absolutePath 
    def proc = command.execute() 
    proc.waitFor() 

    println "return code: ${ proc.exitValue()}" 
    println "stderr: ${proc.err.text}" 
    println "stdout: ${proc.in.text}"