Menu
CoddyTech

Đọc lỗi xác thực

Thuộc phần REST API trong hành trình Node.js của Coddy. Bài học 10 trên 25.

Ứng dụng cần biết trường đầu vào nào cần sửa. Khi safeParse thất bại, result.error mô tả các vấn đề. z.flattenError sắp xếp chúng thành hai nhóm: fieldErrors cho các trường được đặt tên và formErrors cho toàn bộ đối tượng.

const issues = z.flattenError(result.error);
const fields = Object.keys(issues.fieldErrors);

Với kiểu tiêu đề không đúng, fields chứa title. Object.keys trả về một mảng các tên thuộc tính. Chỉ gọi flattenError trong nhánh thất bại. Khi thành công, không có lỗi nào cần làm phẳng. Lược đồ này kiểm tra các trường được liệt kê. Lỗi ở cấp đối tượng nghiêm ngặt được giới thiệu trong bài học Lược đồ với zod.

Object.keys(fieldErrors) trả về tên các trường. Phương thức sort() sắp xếp các tên đó theo thứ tự bảng chữ cái.

challenge icon

Thử thách

Dễ

Đây là một dự án luyện tập nhỏ. Phần thiết lập đã có sẵn, bạn chỉ chỉnh sửa exercise.js.

Nếu thành công, hãy trả về {"fields":[]}. Nếu thất bại, hãy trả về tên các trường trong fieldErrors, được sắp xếp theo thứ tự bảng chữ cái. Gửi {"title":42,"done":"yes"} bằng POST đến /result sẽ trả về {"fields":["done","title"]}. Tiêu đề hợp lệ và giá trị boolean sẽ cho danh sách rỗng.

GET /result ban đầu dùng ví dụ đã cung cấp {"title": 42, "done": "yes"}. Dùng POST /result với phần thân JSON để thử các đầu vào khác.

Tự làm thử

import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
export function exercise(body) {
    return { fields: [] };
}

Tất cả bài học trong REST API

Tự luyện tập: Playground Express