gpt4 book ai didi

node.js - NodeJs,如何显示完整的 STDERR 消息?

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:32 24 4
gpt4 key购买 nike

请帮助我如何从进程中获取完整的错误字符串(以传入 res.send())?例如,现在在控制台中打印:

Child Process STDERR: src/sketch.ino: In function ‘void setup()’:
src/sketch.ino:17:11: error: ‘led’ was not declared in this scope
src/sketch.ino: In function ‘void loop()’:
src/sketch.ino:23:15: error: ‘led’ was not declared in this scope
make: *** [.build/atmega328/src/sketch.o] Error 1

但是当我通过 res.send('Error:\n'+ stderr); 时,我只打印 "Error: src/sketch.ino: In function 'voi"。为什么会截断消息?那么如何通过完整的考试呢?

这是我的代码:

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

var inoVerify = exec('ino build -m atmega328', { cwd: codeFile.projectPath }, function(error, stdout, stderr) {
console.log('Child Process STDERR: '+ stderr);
if (stderr)
res.send('Error:\n'+ stderr);
});

最佳答案

这是一些执行限制。我更改了此示例以使用生成过程,如下所示:

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

var inoVerify = spawn('ino', ['build', '-m', 'atmega328'], { cwd: codeFile.projectPath });

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

inoVerify.stderr.on('data', function (data) {
console.log('stderr: ' + data);
res.end('stderr: ' + data);
});

inoVerify.on('close', function (code) {
console.log('child process exited with code ' + code);
});

http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options 为例

关于node.js - NodeJs,如何显示完整的 STDERR 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23451569/

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