Node.js exec() 不执行回调

Node.js exec() doesn't execute callback

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

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/*'})

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

Node version: v6.10.2

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

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

如果 STDOUT 被重定向甚至 console.log 重新定义,您可能看不到 console.log() 输出。要真正查看回调是否被调用,您可以尝试将一些消息写入文件。