קריאת שגיאות אימות
חלק מהיחידה REST APIs במסלול ה-Node.js של Coddy. שיעור 10 מתוך 25.
לקוח צריך לדעת איזה קלט לתקן. כאשר safeParse נכשל, result.error מתאר את הבעיות. z.flattenError מארגן אותן לשתי קבוצות: fieldErrors עבור שדות בעלי שם, ו-formErrors עבור האובייקט כולו.
const issues = z.flattenError(result.error);
const fields = Object.keys(issues.fieldErrors);כשסוג הכותרת שגוי, fields מכיל את title. Object.keys מחזירה מערך של שמות המאפיינים. יש לקרוא ל-flattenError רק בענף הכישלון. במקרה של הצלחה, אין שגיאה לשטח. הסכמה הזו בודקת את השדות המפורטים בה. שגיאות ברמת האובייקט במצב strict מוצגות בפרק Schemas with zod.
Object.keys(fieldErrors) מחזירה את שמות השדות. המתודה sort() שלה מסדרת את השמות האלה בסדר אלפביתי.
אתגר
קלזהו פרויקט תרגול קטן. ההגדרה שלו כבר מסופקת; ערכו רק את exercise.js.
במקרה של הצלחה, החזירו {"fields":[]}. במקרה של כישלון, החזירו את השמות שב־fieldErrors, ממוינים לפי סדר אלפביתי. שליחת {"title":42,"done":"yes"} באמצעות POST אל /result מחזירה {"fields":["done","title"]}. כותרת תקינה וערך בוליאני מחזירים רשימה ריקה.
ה־GET /result הראשוני משתמש בדוגמה שסופקה {"title": 42, "done": "yes"}. השתמשו ב־POST /result עם גוף JSON כדי לנסות קלטים אחרים.
נסו בעצמכם
import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
export function exercise(body) {
return { fields: [] };
}
כל השיעורים ביחידה REST APIs
2אימות ושגיאות
אימות קלטתרגלו בעצמכם: Express אונליין