Kijan pou m jere erè nan yon API Express pou kliyan an jwenn bon mesaj?
poze a month ago332 gadeht
6
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?
Dyagnostik IA
Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.
poze a month ago
James Étienne 2.3k
1 Repons
7
✓✓ Repons yo aksepte
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).
Konekte pou di lòt moun si li te mache.
answered a month ago
David Charles 2.9k
Sign in and verify your email to post an answer.