如何将系统命令的输出作为函数的返回值?

时间:2015-09-30 00:41:26

标签: javascript node.js

下面显示的代码旨在将当前工作目录输出到控制台。而是输出," undefined"。出于这种学习体验的目的,重要的是我获得所需的结果作为系统函数的返回值。关于如何使这项工作的任何想法?

#!/usr/bin/node
var child_process = require('child_process');
function system(cmd) {
  child_process.exec(cmd, function (error, stdout, stderr) {
  return stdout;
})};
console.log(system('pwd'));

1 个答案:

答案 0 :(得分:4)

exec是异步执行的。将回调传递给您的函数,然后进行设置。

#!/usr/bin/node
var child_process = require('child_process');

function system(cmd, callback) {
  child_process.exec(cmd, function (error, stdout, stderr) {
     //You should handle error or pass it to the callback
     callback(stdout); 
  });
}

system('pwd', function(output){ 
  console.log(output); 
});

以下是你如何同步进行,我相信你正在寻找的东西。

function systemSync(cmd) {
  return child_process.execSync(cmd).toString();
}

console.log(systemSync("pwd"));