从python-shell返回值作为响应

时间:2018-07-30 05:42:11

标签: python json node.js angular flask

我正在使用python shell在nodeJS上运行python。我需要返回python shell作为响应。但是当我尝试发送响应时,它显示了一个错误

Can't set headers after they are sent.

这是我的代码

app.post('/therun', (req, res)=>{

    var pyshell = new PythonShell('hello.py');

    pyshell.on('message', function (message) {

       console.log(message); //value is correct
       res.send(message); //error here

      });

       res.send(message); //if i use here message undefined


});

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

    app.post('/therun', (req, res)=>{

    var pyshell = new PythonShell('hello.py');
    var test={};

    pyshell.on('message', function (message) {

       console.log(message); //value is correct
       //res.send(message); //error here
      test=message;

      });
       console.log(test);
       res.send(message); //if i use here message undefined


});

您能告诉我控制台上对test值的响应吗?

答案 1 :(得分:0)

与其按原样发送,

res.send(message); //error here

您可以尝试发送带有下面给出的状态码的邮件吗?

res.status(200).json({
  "message":message
})

希望这会有所帮助!

答案 2 :(得分:0)

您忘记关闭python shell(在pyshell.on()之后):

pyshell.end(function (err) {
  if (err) throw err;
});