希望这还没有在其他地方回答,但我找不到......
我已经创建了一个nodejs脚本来实时显示python脚本的输出,请参阅demo:
app.get('/', function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
PythonShell.run('script_web_e2L.py', function (err, results) {
if (err) throw err;
res.writeHead(301,{Location: results[results.length - 1]});
res.end();
}).on('message', function (message) {
res.write(message+'<br>');
});
});
我希望显示python脚本的所有输出,并且在这一端,如果它到达结尾,我想重定向python的最后一个输出给出的链接。
正如你必须猜到的,我想错误:
Error: Can't set headers after they are sent.
知道如何覆盖标题或......?
答案 0 :(得分:1)
您编写http响应标头两次。
res.writeHead(200, { 'Content-Type': 'text/html' });
res.writeHead(301,{Location: results[results.length - 1]});
你做不到。您必须只编写一次标题,http spec。
要在命令完成后重定向用户,您必须在客户端执行此操作。