【问题标题】:exec() command is not showing the output in stdoutexec() 命令未在标准输出中显示输出
【发布时间】:2017-08-06 12:29:41
【问题描述】:

我正在使用 exec 命令通过安装 child_process 节点模块来理解它。下面是代码行。 通过查看输出,可以看出我的 exec() 没有按预期工作。

exec.js

console.log('1')
var exec = require('child_process').exec;
console.log('2');
exec('node -v', function (error, stdout, stderr) {
    console.log('stdout', +stdout);
    console.log('stderr', +stderr);
    if (error !== null) {
        console.log('exec error: ', + error);
    }
});

package.json

{
  "name": "exec",
  "version": "1.0.0",
  "description": "",
  "main": "exec.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "child_process": "^1.0.2"
  }
  }

当运行命令node exec.js时,它会显示如下输出

1
2
stdout NaN
stderr 0

【问题讨论】:

    标签: javascript node.js exec child-process


    【解决方案1】:

    在每个console.log 函数调用中,每个变量名前面都有一个+。这试图将变量的值转换为数字。删除第 5,6 和 8 行中的+,代码应该会按预期运行。

    当输出到标准错误时最好使用console.error

    console.log('1')
    var exec = require('child_process').exec;
    console.log('2');
    exec('node -v', function (error, stdout, stderr) {
        console.log('stdout', stdout);
        console.error('stderr', stderr);
        if (error !== null) {
            console.log('exec error: ', error);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 2014-02-02
      • 2015-12-20
      • 1970-01-01
      相关资源
      最近更新 更多