gpt4 book ai didi

node.js - 执行 : display stdout "live"

转载 作者:IT老高 更新时间:2023-10-28 21:46:14 28 4
gpt4 key购买 nike

我有这个简单的脚本:

var exec = require('child_process').exec;

exec('coffee -cw my_file.coffee', function(error, stdout, stderr) {
console.log(stdout);
});

我只是执行一个命令来编译一个 CoffeeScript 文件。但是 stdout 永远不会显示在控制台中,因为命令永远不会结束(因为咖啡的 -w 选项)。如果我直接从控制台执行命令,我会收到这样的消息:

18:05:59 - compiled my_file.coffee

我的问题是:是否可以使用 node.js exec 显示这些消息?如果是怎么办? !

谢谢

最佳答案

不要使用 exec。使用spawn这是一个 EventEmmiter 对象。然后你可以监听 stdout/stderr 事件 (spawn.stdout.on('data',callback..)) as他们发生了

来自 NodeJS 文档:

var spawn = require('child_process').spawn,
ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', function (data) {
console.log('stdout: ' + data.toString());
});

ls.stderr.on('data', function (data) {
console.log('stderr: ' + data.toString());
});

ls.on('exit', function (code) {
console.log('child process exited with code ' + code.toString());
});

exec 缓冲输出,通常在命令执行完成后返回。

关于node.js - 执行 : display stdout "live",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232192/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com