有没有办法从节点应用程序中运行命令行命令并使输出生效?
例如:
var exec = require('child_process').exec;
var fs = require('fs');
exec( 'nightwatch --config nightwatch_dev.json ', function( error, stdout, stderr ){
console.log( stdout );
});
或:
var exec = require('child_process').exec;
var fs = require('fs');
exec( 'rsync -avz /some/folder/ john@8.8.8.8:/some/folder/', function( error, stdout, stderr ){
console.log( stdout );
});
有许多实例可以很好地在节点中编写脚本,但输出只在命令完成后才转储到终端。
干杯 Ĵ
答案 0 :(得分:1)
如果您希望获得结果,则应使用spawn()
代替exec()
。 exec()
缓冲输出,然后在进程完成后立即将其全部提供给您。 spawn()
返回一个事件发射器,并在发生时获得输出。
.spawn()
的示例here in the node.js doc: