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?