रिंगोजेएस में function है जिसे read
कहा जाता है जो आपको अंत तक पहुंचने तक पूरी स्ट्रीम पढ़ने की अनुमति देता है। जब आप कमांड लाइन एप्लिकेशन बना रहे हों तो यह उपयोगी होता है। इस प्रकार उदाहरण के लिए यदि आप एक tac
program लिख सकते हैं:node.js में एक संपूर्ण पाठ स्ट्रीम को कैसे पढ़ा जाए?
#!/usr/bin/env ringo
var string = system.stdin.read(); // read the entire input stream
var lines = string.split("\n"); // split the lines
lines.reverse(); // reverse the lines
var reversed = lines.join("\n"); // join the reversed lines
system.stdout.write(reversed); // write the reversed lines
यह आपको एक खोल ऊपर आग और tac
आदेश को चलाने के लिए अनुमति देता है। तो फिर तुम के रूप में आप करना चाहते हैं के रूप में कई लाइनों में टाइप करें और उसके बाद आपका काम हो गया आप end of transmission संकेत करने के लिए Ctrl +डी (या Ctrl +जेड Windows पर) दबा सकते हैं।
मैं node.js में वही काम करना चाहता हूं लेकिन मुझे ऐसा कोई फ़ंक्शन नहीं मिल रहा है जो ऐसा करेगा। मैं fs
पुस्तकालय से readSync
function का उपयोग कर के रूप में इस अनुकरण करने के लिए के बारे में सोचा है, लेकिन कोई लाभ नहीं हुआ:
fs.readSync(0, buffer, 0, buffer.length, null);
file descriptor for stdin (पहला तर्क) 0
है। तो इसे कीबोर्ड से डेटा पढ़ना चाहिए।
Error: ESPIPE, invalid seek
at Object.fs.readSync (fs.js:381:19)
at repl:1:4
at REPLServer.self.eval (repl.js:109:21)
at rli.on.self.bufferedCmd (repl.js:258:20)
at REPLServer.self.eval (repl.js:116:5)
at Interface.<anonymous> (repl.js:248:12)
at Interface.EventEmitter.emit (events.js:96:17)
at Interface._onLine (readline.js:200:10)
at Interface._line (readline.js:518:8)
at Interface._ttyWrite (readline.js:736:14)
कैसे आप तुल्यकालिक एक इनपुट पाठ धारा में सभी डेटा इकट्ठा करने और Node.js में एक स्ट्रिंग के रूप में यह वापसी होगी: इसके बजाय यह मुझे निम्न त्रुटि देता है? एक कोड उदाहरण बहुत उपयोगी होगा।
आप एक असीमित स्ट्रीम में सिंक्रनाइज़ रूप से पढ़ नहीं सकते हैं। आप वैसे भी क्यों चाहेंगे? – tjameson
मैं वही काम करने की कोशिश कर रहा हूं। कारण मेरे कार्यक्रम में एक इंटरैक्टिव विकल्प बनाना है, जो कई कारणों से उपयोगी है। एक एसिंक पाठक बहुत मदद नहीं करता है। – ton
यहां एक तरीका https: //www.npmjs।कॉम/पैकेज/रीडलाइन-सिंक: http://stackoverflow.com/questions/8452957/synchronously-reading-stdin-in-windows/27931290#27931290 – ton