下面显示的代码旨在将当前工作目录输出到控制台。而是输出," 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'));
答案 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"));