【发布时间】:2016-04-09 21:11:01
【问题描述】:
我目前正在使用 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 无济于事,尽管我可能用错了。我确信我的问题的解决方案非常简单,但我一直无法找到它。任何帮助将不胜感激!
【问题讨论】:
-
您可以尝试先将其存储在一个变量中
var output = stdout.toString(),然后console.loggingoutput变量,然后发送它吗? -
试过了,记录输出变量也显示空白
-
哦,真是奇怪,那会不会和我的命令有关?
-
可能是,但你说
console.log(stdout)显示正确的输出?
标签: javascript node.js post exec stdout