AFTER响应重定向结束

时间:2016-06-03 14:22:17

标签: python node.js express

希望这还没有在其他地方回答,但我找不到......

我已经创建了一个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.

知道如何覆盖标题或......?

1 个答案:

答案 0 :(得分:1)

您编写http响应标头两次。

res.writeHead(200, { 'Content-Type': 'text/html' });  
res.writeHead(301,{Location: results[results.length - 1]}); 

你做不到。您必须只编写一次标题,http spec。

要在命令完成后重定向用户,您必须在客户端执行此操作。