Attualmente sto lavorando a un'applicazione web come progetto di apprendimento, che ha un backend NodeJS e usa un database MongoDB; tuttavia, credo che la mia domanda non sia specifica per le tecnologie che sto usando.
Quando creo un'API RESTful, posso apprezzare che devi sempre rispondere al client con il codice di errore HTTP appropriato ogni volta che il tuo programma incontra un errore durante l'esecuzione (es. rispondi con qualche codice di errore HTTP quando MongoDB incontra un problema che prova a recuperare alcuni dati e fornire un feedback di front end sull'errore). Ad esempio, quando si crea una voce in un database MongoDB, in genere si esegue quanto segue
Model.create({
// create some data in my db
}, (err, data) => {
if (err) {
// respond with 404
} else {
// respond with 200 and serve data to client
}
})
Tuttavia, non sono sicuro su come dovrei gestire gli errori nelle istanze al di fuori di quanto sopra. Ad esempio, per il codice che viene eseguito su un intervallo regolare non richiesto da un client, cosa dovrei fare con l'errore dato che mi aspetto che questo codice di routine funzioni senza intoppi continuamente?
La pratica ingegneristica standard prevede l'invio di un avviso quando viene generato un errore? La mia soluzione attuale è semplicemente console.log l'errore che sembra del tutto inutile dato che non guarderei il mio server 24 ore su 24, 7 giorni su 7, quindi qualsiasi errore registrato sarebbe passato inosservato.
Model.create({
// create some data in my db
}, (err, data) => {
if (err) {
// what should I do here??
// currently pointlessly console.logging here...
} else {
// do something on success
}
})
Di seguito c'è un'altra istanza in cui non sono sicuro di come gestire l'errore. Qui, sto inviando una notifica allentata ogni volta che succede qualcosa per monitorare la mia applicazione e mi aspetto che funzioni sempre. Se un messaggio non riesce a inviare, non è un grosso problema, ma cosa faccio con l'errore?
slack.webhook({ // posts message to slack
channel: "#general",
username: "bot",
text: 'Yay success'
}, function(err, response) {
// what should I do if the slack message doesn't send??
// Send an alert to tell me that there is an issue with sending messages to slack?
// Force the app to keep trying to resend a message until it's successful?
});