在JavaScript中使用child_process执行shell命令

时间:2018-12-05 01:22:59

标签: javascript node.js express asynchronous child-process

尝试从浏览器执行shell命令(任意),并使用child_process将结果打印在Ui上。

无法从命令行异步获取结果。我在这里缺少什么吗?

   const exec = require('child_process').exec;
    app.post('/plan',(req, res) => {

      let cmd = exec('dir');
      let output = "";
      cmd.stdout.on('data', (data) => {
        //console.log(`stderr: ${data}`);
        output += data;
       });
      res.send(output);                          //not working
      console.log(output);                       //its empty
      cmd.stderr.on('data', (data) => {
          console.log(`stderr: ${data}`);
       });
      cmd.on('close', (code) => {
         console.log(`child process exited with code ${code}`);
      });

    });

1 个答案:

答案 0 :(得分:1)

shell命令异步运行。您需要从回调函数中发送响应,以便在完成执行后发送结果。

pid

这样做可能会更清洁:

pid