صيغة ردّ موحّدة
اجعل كل أخطائك بنفس الشكل ليسهل على العميل التعامل معها:
{
"error": {
"message": "المستخدم غير موجود",
"code": "USER_NOT_FOUND"
}
}
وسيط الأخطاء في Express
// في نهاية كل المسارات
app.use((err, req, res, next) => {
console.error(err);
const status = err.status || 500;
res.status(status).json({
error: { message: err.message || "خطأ في الخادم" }
});
});
رمي خطأ من المعالج
app.get("/users/:id", async (req, res, next) => {
try {
const user = await getUser(req.params.id);
if (!user) {
const e = new Error("غير موجود");
e.status = 404;
throw e;
}
res.json(user);
} catch (err) {
next(err); // مرّره لوسيط الأخطاء
}
});
قواعد
- لا تكشف تفاصيل داخلية حسّاسة في رسائل الإنتاج.
- استخدم الرمز المناسب (400/401/403/404/422/500).
🎯 التالي: إصدارات الواجهة.