node.js - 同步执行命令并获得结果

Mar*_*ahn 7 command synchronous node.js

我正在尝试在node.js中同步执行child_process(是的,我知道这很糟糕,我有充分的理由)并检索stdout上的任何输出,但我无法弄清楚如何...

我发现这个SO帖子:node.js同步执行系统命令,它描述了如何使用库(node-ffi)来执行命令,这很好用,但我唯一能得到的就是进程退出代码.命令执行的任何数据都直接发送到stdout - 我该如何捕获它?

> run('whoami')
username
0
Run Code Online (Sandbox Code Playgroud)

换句话说,username是对stdout的回应,结果run0.

我想太多,而弄清楚如何读取标准输出

小智 3

所以我有一个有效的解决方案,但并不完全喜欢它......只是在这里发布以供参考:

我正在使用node-ffi另一篇 SO 帖子中引用的库。我有一个功能:

  • 接受给定的命令
  • 追加>> run-sync-output
  • 执行它
  • 同步读取run-sync-output并存储结果
  • 删除此 tmp 文件
  • 返回结果

有一个明显的问题,如果用户没有当前目录的写访问权限,则会失败。另外,这只是浪费精力。:-/