我目前正在使用 NodeJS 开发应用程序的后端。作为代码的一部分,我读取文件的第一行并使用 res.json 将其发送到客户端。我的代码如下所示
var hr = 'head -n 1 ../' + req.file.path + '_hr.txt';
exec(hr, function (error, stdout, stderr) {
console.log(hr);
console.log(stdout);
console.log(stderr);
res.json({
"heartrate": stdout
});
})
但是,当我执行此操作时,我得到
{"heartrate" : ""}
即使在后端的控制台上我看到了标准输出的值。
我看过其他相关问题,但我得到的信息都是零散的。我意识到 stdout 生成的对象不是字符串。我尝试了 toString() 方法,但没有用。
我还在 res.json 周围放置了一个 if(stdout),因为 exec 是异步的,并且当我调用 console.log(stdout) 时可能尚未写入 stdout,但这也不起作用。
我也尝试使用spawn而不是exec,但没有成功,尽管我可能用错了。我确信解决我的问题的方法非常简单,但我一直找不到它。任何帮助将不胜感激!
最佳答案
事实证明我记录了错误的标准输出,记录了正确的标准输出并得到了我想要的答案
关于javascript - NodeJS - 将命令行输出存储为 var 并通过 res.send() 将其返回给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621932/