Nodejs:返回stdout

时间:2014-04-30 04:03:13

标签: node.js

我正在尝试使用这个简单的函数返回用户名,但它不起作用。我的异步就是为什么它会返回undefined。那么从stdout返回价值的最佳方式是什么?

function User() {
    exec('whoami',function (error, stdout, stderr) {
            return stdout;
        });
}

有一个节点模块execSync,但它不适用于生产机器。

2 个答案:

答案 0 :(得分:1)

您将从异步回调中返回一个值,该值不起作用。您需要将回调传递给User()

function User(cb) {
  exec('whoami',function (error, stdout, stderr) {
    if (error)
      return cb(error);
    cb(null, stdout);
  });
}

答案 1 :(得分:1)

使用以下,

var exec = require('child_process').exec;

function User(cmd, callback) {
    exec(cmd, function (error, stdout) {
        return callback(null, stdout);
    });
}

User('whoami', function(err, callback){
    console.log(callback);
});