Dzień dobry, jaki waszym zdaniem jest najbezpieczniejszy i najlepszy sposób na przechwytywanie wszelakich błędów w node.js? Wydaje mi się, że używanie try catch nie jest najlepszym pomysłem, ponieważ zmniejsza to czytelność kodu i łatwo jest w niektórych miejscach najzwyczajniej o tym zapomnieć :). Próbowałem coś wymyślić jednak średnio to działa.
Linijki odpowiedzialne za przechwytywanie błędów w index.js:
const error = require('./middleware/error');
const winston = require('winston');
winston.exceptions.handle(
new winston.transports.File({ filename: 'uncaughtExceptions.log' })
);
process.on('unhandledRejection', (ex) => {
throw ex;
});
Plik error to funkcja middleware, która wygląda w taki sposób:
const winston = require('winston');
module.exports = function(err, req, res, next) {
winston.error(err.message, err);
return res.status(500).send('Something failed.');
};
Niektóre błędy są logowane w pliku uncaughtExceptions.log i konsoli, lecz przy
throw new Error('err')
użytkownik dalej dostaje wiadomość błędu z konkretnym plikiem i linijką. Może ktoś bardziej doświadczony mi pomoże, bo wiem, że bez poprawnego przechwytywania błędów nie mogę pójść dalej, a wyczerpał mnie już trochę ten temat.