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

标签 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 生成的对象不是字符串。我尝试了 toString() 方法,但没有用。

我还在 res.json 周围放置了一个 if(stdout),因为 exec 是异步的,并且当我调用 console.log(stdout) 时可能尚未写入 stdout,但这也不起作用。

我也尝试使用spawn而不是exec,但没有成功,尽管我可能用错了。我确信解决我的问题的方法非常简单,但我一直找不到它。任何帮助将不胜感激!

最佳答案

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

关于javascript - NodeJS - 将命令行输出存储为 var 并通过 res.send() 将其返回给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621932/

相关文章:

javascript - 在javascript中是否可以部分导入 "intermediate module"?

node.js - 如何使用 CAS 替换 couchbase 文档 - couchbase node js 2.0

javascript - 如何在循环内将元素传递给 jQuery post

javascript - 如何使用动态值插入标记的模板字符串?

javascript - 获取上一个可见元素jquery

javascript - 为什么我的 Angular.js fiddle 不起作用?

node.js - node.js 中的 wire.js 示例

javascript - 我如何使用 'gulp-babel' throw ERROR 不要停止 Node 服务器

php - jquery $.post 从 php 返回的数据为空

http - 如何防止 ServerXMLHTTP 自动跟随重定向(HTTP 303 请参阅其他响应)?