veena nair Ответов: 1

Как дать два ответа на один запрос в nodejs


как отправить эти 2 ответа на один и тот же запрос.. когда я попробовал приведенный ниже код он показывает эту ошибку :-
(node:4148) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Cant set headers after they are sent.
(node:4148) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

если мы даем какой-то один ответ за один раз, это прекрасно работает

Что я уже пробовал:

{
fs.readFile('public/html/sucess.html', function (err, data) {
          res.write(data);
          res.end();
      });
webtrfy(downloadLink)
      .then(function (buffer) {
         console.log('creating the file');
         //-------------------------------------------
         res.setHeader('Content-Type', 'application/x-trt');
         res.setHeader('Content-Disposition', `inline; filename="${fileName}.trt"`);
         res.setHeader('Cache-Control', 'public, max-age=2592000'); // 30 days
         res.send(buffer);
         console.log(fileName +'.trt created');
         res.end();
         //-------------------------------------------
      });
}

F-ES Sitecore

Если вы отправили два ответа в браузер, что он будет с ними делать? Если я отправлю 5 страниц, то смогу показать только одну, так что же будет с остальными? Веб-это технология запроса\ответа, вы делаете запрос, вы получаете ответ.

Если вы хотите загрузить файл, а также показать экран подтверждения, то вам нужно сделать два запроса и убедиться, что запрос на файл направлен на новый экземпляр браузера (target=_blank). Большинство браузеров распознают, что это загрузка файла, и покажут диалоговое окно загрузки, а не создадут новую вкладку. Другой запрос касается вашей страницы подтверждения, и вы сделаете это обычным запросом.

veena nair

я новичок в мире программирования можете ли вы показать мне пример

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Ты не можешь. Один запрос = один ответ.

Если вы пытаетесь показать новую страницу и загрузить файл, то лучше всего сделать так, чтобы новая страница сделала запрос на файл, а не на страницу, которую вы покидаете.


veena nair

я новичок в этом мире программирования ... можете ли вы показать пример

Dave Kreskowiak

Нет. У меня еще нет готового.