отправить сообщение об ошибке обратно в браузер в nodejs - PullRequest
0 голосов
/ 01 октября 2018

У меня есть нод API, который работает нормально при тестировании с использованием почтальона.Но когда я использую этот API в своем угловом проекте, возникает ошибка, и браузер не получает никакого ответа, он продолжает ждать ответа.Когда я захожу в консоль, я вижу сообщение об ошибке.

Как сделать так, чтобы это сообщение об ошибке было отправлено обратно в браузер с полной трассировкой стека

1 Ответ

0 голосов
/ 01 октября 2018

В общем случае вам нужно будет отловить эту ошибку, а затем заполнить объект ответа http так же, как если бы вы отправляли данные успешного ответа обратно запрашивающей стороне.

Синхронная обработка:

try {
   // do my requested stuff
   res.status(200).json({something:"returned"}); 
} catch(ex) {
   res.status(500).json(ex); 
};

Обещания:

Promise.resolve()
    .then(() => {
         // do my requested stuff
         // return my results stuff to the client
         res.status(200).json({something:"returned"}); 
    })
    .catch((ex) => {
        // return 500 error and exception data to the client
        res.status(500).json(ex);  
    });

Кроме того, как стандартная практика, вы должны отлавливать все ошибки, и, по крайней мере, вы должны вернуть 500 в браузер res.status(500), чтобы вы не уходилиОн зависает, когда возникают неожиданные проблемы.

И, конечно, вы можете вернуть html, а не json, и / или дополнительную информацию в ответе.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...