NodeJS - 将命令行输出存储为var并通过res.send()将其返回给客户端

时间:2016-01-05 21:56:02

标签: javascript node.js post exec stdout

我目前正在使用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的值。

我已经查看了其他相关问题,但我所得到的信息却是点点滴滴。我意识到stdout生成的对象不是字符串。我尝试了toString()方法,但是没有用。

我还在res.json周围放了一个if(stdout),因为exec是非同步的,并且当我调用console.log(stdout)时可能没有写入stdout,但是这也没有用。< / p>

我也尝试使用spawn而不是exec无济于事,尽管我可能错误地使用了它。我确定我的问题的解决方案很简单,但我找不到它。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

所以事实证明我记录了错误的标准记录,记录了正确的记录并得到了我想要的答案