我正在使用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
});
如何解决这个问题?
答案 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;
});