मुझे बाल-प्रक्रिया मॉड्यूल में समस्या है, खासकर बच्चे के साथ। स्पॉन और child.fork।node.js बाल प्रक्रिया मॉड्यूल में संदेशों से बच्चे के माता-पिता से stdout कैसे पास करें?
This is a special case of the child_process.spawn() functionality for spawning Node.js processes. In addition to having all the methods in a normal ChildProcess instance, the returned object has a communication channel built-in. See child.send(message, [sendHandle]) for details.
मैं नीचे मेरी समस्या को सरल बनाया गया है:: मैं child_process.fork के प्रलेखन, जो कहते हैं पर भरोसा कर रहा हूँ
parent.js है:
var cp = require('child_process');
var n = cp.fork('./child.js');
n.send({a:1});
//n.stdout.on('data',function (data) {console.log(data);});
n.on('message', function(m) {
console.log("Received object in parent:");
console.log(m);
});
child.js है:
process.on('message', function(myObj) {
console.log('myObj received in child:');
console.log(myObj);
myObj.a="Changed value";
process.send(myObj);
});
process.stdout.write("Msg from child");
जैसा कि अपेक्षित था। आउटपुट है:
Msg from child
myObj received in child:
{ a: 1 }
Received object in parent:
{ a: 'Changed value' }
मैं इसे parent.js में टिप्पणी की गई पंक्ति के साथ काम करना चाहता हूं। दूसरे शब्दों में, मैं n.stdout.on ('डेटा' ... माता पिता की प्रक्रिया में बयान में बच्चे की प्रक्रिया में stdout को पकड़ने के लिए चाहते हैं, तो मैं यह uncomment, मैं कोई त्रुटि मिलती है:।
n.stdout.on('data',function (data) {console.log(data);});
^
TypeError: Cannot read property 'on' of null
मुझे किसी भी बच्चे-प्रक्रिया एसिंक्रोनस विविधता, निष्पादन, कांटा या स्पॉन का उपयोग करने में कोई फर्क नहीं पड़ता। कोई सुझाव?
क्या कोई कृपया समझा सकता है - स्ट्रीमिंग करते समय 'डेटा' के बजाय 'संदेश' श्रोता को क्यों पसंद किया जाए ... डेटा? – ymz