Kijan pou m jere erè nan yon API Express pou kliyan an jwenn bon mesaj?
posée a month ago334 vuesht
Lè yon bagay mal pase nan API m nan, pafwa kliyan an resevwa yon paj HTML erè, pafwa yon 500 san detay. Kijan pou m gen yon fòma erè ki konsistan?
Diagnostic IA
Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.
1 réponse
Kreye yon klas erè pa w, epi yon sèl middleware erè nan fen app la:
export class AppError extends Error {
constructor(status, code, message) {
super(message);
this.status = status;
this.code = code;
}
}
// nan yon route
if (!itilizate) throw new AppError(404, 'NOT_FOUND', 'Itilizatè sa a pa egziste');
// dènye middleware nan app.js
app.use((err, req, res, next) => {
const status = err.status ?? 500;
if (status >= 500) console.error(err); // log detay yo sou sèvè a sèlman
res.status(status).json({
error: {
code: err.code ?? 'INTERNAL',
message: status >= 500 ? 'Yon erè entèn rive' : err.message,
},
});
});
Pwen enpòtan: - Pa janm voye stack trace bay kliyan an an pwodiksyon. - Itilize bon kòd HTTP yo: 400 (done pa bon), 401 (pa konekte), 403 (pa gen dwa), 404, 409 (konfli), 422, 429. - Ak Express 4, vlope rout async yo pou erè yo rive nan middleware la (Express 5 fè sa pou kont li).
Connectez-vous pour dire si ça a marché.
Sign in and verify your email to post an answer.