Javascript 无法恢复res.render()或res.redirect()的节点

Javascript 无法恢复res.render()或res.redirect()的节点,javascript,node.js,header,request,httpresponse,Javascript,Node.js,Header,Request,Httpresponse,这是我的代码: app.post('/post_route', function(req, res) { //HACKY CODE TO SERVE THE CLIENT A TEXT FILE var fileContents = Buffer.from(result, 'ascii'); var readStream = new stream.PassThrough(); readStream.end(fileContents

这是我的代码:

app.post('/post_route', function(req, res) {

        //HACKY CODE TO SERVE THE CLIENT A TEXT FILE
        var fileContents = Buffer.from(result, 'ascii');
        var readStream = new stream.PassThrough();
        readStream.end(fileContents);
        res.set('Content-disposition', 'attachment; filename=' + fileName);
        res.set('Content-Type', 'text/plain');
        readStream.pipe(res);

        res.redirect('/success');
});
第一部分将服务器内存的一部分作为文本文件发送给客户端。 完成后,我想将用户重定向到一个成功页面

这是行不通的

我的routes.js文件中还有以下代码:

app.get('/success', function(req, res) {
        res.render('success.ejs');
});
无论我是否尝试执行
res.render('succes.ejs')或使用
res.redirect()
将不起作用

这可能与“一个请求->一个响应”原则有关。 但是在这里,在我尝试进行渲染/重定向之前,我不会进行直接响应

我只设置了一些允许下载的标题


那么,有没有一种方法可以绕过或破解这一问题,从而实现渲染/重定向呢?

您好
res.redirect()
在后台设置
位置
标题,这意味着它也在发送标题后设置标题。所以这是不可能的?我通过将所有页面放在一个页面中,然后控制将使用javascript显示哪些部分来显示第一页。不可能的是将管道连接到客户端并重定向它们。至少在管道连接完成后。。。是否有方法通知客户端,以便我可以呈现不同的div?