prompt.js:
var inquirer = require("inquirer");
console.log("Hi, welcome to Node Pizza");
var questions = [{
type: "confirm",
name: "toBeDelivered",
message: "Is it for a delivery",
default: false
}];
inquirer.prompt( questions, function( answers ) {
console.log("nOrder receipt:");
console.log( JSON.stringify(answers, null, " ") );
});
index.js:
var childProcess = require('child_process');
var cp = childProcess.exec('node prompt.js', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
if (err) {
console.log('exec error: ' + error);
}
});
process.stdin.pipe(cp.stdin);
在windows7 x64 git shell(节点v0.10.26)中执行命令:
node index.js
您可以看到,shell什么也不输出,正在等待读取输入。
为什么像"嗨,欢迎来到Node Pizza"这样的输出在读取输入之前没有输出?
您应该使用child_process.spawn()而不是child_proccess.exec(),因为exec()缓冲输出并等待进程退出。