繁体   English   中英

exec()命令未在stdout中显示输出

[英]exec() command is not showing the output in stdout

我正在使用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

在每个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);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM