Это мой код:
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');
});
Первая часть отправляет некоторую часть памяти сервера клиенту в виде текстового файла.
После этого я хочу перенаправить пользователя на страницу успеха.
Это не работает.
У меня также есть этот код в моем файле rout.js:
app.get('/success', function(req, res) {
res.render('success.ejs');
});
Независимо от того, пытаюсь ли я сделать res.render('succes.ejs');
напрямую или с помощью res.redirect()
, это не сработает.
Это, вероятно, связано с принципом «Один запрос -> один ответ».
Но здесь я не делаю прямой ответ, прежде чем попытаться выполнить рендер / перенаправление.
Я установил только несколько заголовков, чтобы разрешить загрузку.
Так есть ли способ обойти или взломать это, чтобы суметь выполнить рендер / перенаправление?