2017-07-24 55 views
2

我有一个处理url发布请求的路由,我在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); 
    }); 
}); 
+0

尝试'res.redirect(someURL)' –

+2

尝试'res.send()'。你有'response.send()'。 –

回答

0

response不确定和你试图调用方法就可以了,所以用res,因为它出现在路由处理程序作为一个参数function(req, res){...}

res.send(stdout); 
+0

这是我的错误。我没有从我的文本编辑器中完全复制粘贴代码。问题比这个更深一点。 – user8359904

+0

@ user8359904您在空中使用'exec',它应该与我的文件顶部的exec声明为child_process模块​​ –

+0

。 var exec = require('child_process')。exec; – user8359904