Node.js exec()不执行回调

时间:2017-04-19 12:41:33

标签: javascript node.js exec child-process

我有一个简单的方法,使用exec作为命令从child_process执行rm -rf方法。

const exec = require('child_process').exec

const Foo = {
  emptyDir: params => {
    exec(`rm -rf ${params.path}`, (err, stdout, stderr) => {
      console.log('test');
    })
  }
}

Foo.emptyDir({path:'./data/*'})

方法工作和文件确实被删除,但回调永远不会被执行。我错过了什么?

  

节点版本:v6.10.2

1 个答案:

答案 0 :(得分:0)

首先,您可能希望使用其中一个模块删除Node中的文件:

现在,console.log('test');不可能执行,因为你甚至不测试错误,所以即使你在PATH中没有rm命令也不会执行它如果它失败了。

如果重定向STDOUT或重新定义console.log(),则可能无法看到console.log输出。要真正查看是否调用了回调,您可以尝试将某些消息写入文件。