2011-11-20 19 views
1

我有一个程序,我使用child_process以编程方式在Node.js上运行。如何让用户在Node.js中输入数据到产生的进程

var spawnedProcess = childProcess.spawn(command, args); 

spawnedProcess.stdout.setEncoding("utf8"); 
spawnedProcess.stdout.on("data", function(data) { 
    return process.stdout.write(data); 
}); 

process.stdin.pipe(spawnedProcess.stdin); 

我认为这将工作,因为我输入到shell中的所有内容都将被传送到派生进程的标准输入中。

我可以看到我输入的内容,当我按Enter键时,只需给我一个新的行。外壳没有响应任何输入。

任何线索?

+0

你试图运行的命令是什么? – thejh

+0

“npm init”和“jitsu deploy”。 – ajsie

+0

npm可以通过编程方式使用(可以将其作为模块安装),但不确定关于jitsu。 – thejh

回答

1

正如评论中所提到的,您可能实际上同时使用npm和jitsu,都可以直接作为模块使用。您可能需要考虑将其作为选项。

当你在命令行中运行它们,你正在做的是运行这两个脚本:

虽则回答你的问题,它看起来完全罚款除了一点。您需要恢复标准输入流才能通过管道连接,如文档中提到的Docs for process.stdin

您只需将此处添加到您称之为“管道”的地方。

process.stdin.resume() 
相关问题