在Node exec中,回调响应无法正常工作

时间:2017-07-24 20:37:35

标签: javascript node.js express child-process

我有一个处理url post请求的路由我在bash命令上运行exec。出于某种原因,console.log工作,所以我知道bash命令结束并且正在输入回调。但是回复不会让我发送任何东西。如果我将响应移到exec回调范围之外,那么我的客户端将发送和接收数据。现在响应没有发送任何东西。我也没有收到任何错误。

router.post('/someurl', function (req, res) {
    exec('some command', function (error, stdout, stderr) {
        if(error) {
        console.error('exec error: '+error);
        }
        console.log(stdout);
        res.send(stdout);
    });
 });

1 个答案:

答案 0 :(得分:0)

response 未定义,并且您正尝试在其上调用方法,因此请使用res,因为它在路由处理程序中显示为参数function(req, res){...}

res.send(stdout);