Menu
CoddyTech

Dùng dữ liệu đã kiểm tra

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

Lược đồ có thể trả về dữ liệu đã kiểm tra hoặc thông tin về sự cố. safeParse trả về một đối tượng có trường success cho bạn biết kết quả. Nếu thành công, data chứa giá trị đã kiểm tra.

const result = Book.safeParse(body);
if (result.success) {
    return result.data;
}
return {error: 'Invalid book'};

Các quy tắc có thể biến đổi giá trị cũng như từ chối chúng. z.string().trim() xóa khoảng trắng ở đầu và cuối. Hãy lưu dữ liệu đã kiểm tra để giữ lại thay đổi đó. Nếu lưu body ban đầu, khoảng trắng không mong muốn sẽ xuất hiện trở lại. Lược đồ được cung cấp đã có sẵn các quy tắc.

trim() xóa khoảng trắng ở đầu và cuối. min(1) tiếp theo yêu cầu ít nhất một ký tự, vì vậy tiêu đề chỉ chứa khoảng trắng sẽ không đạt yêu cầu.

challenge icon

Thử thách

Dễ

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

Dùng lược đồ Task đã cho. Khi thành công, trả về {"ok":true,"title":...} với tiêu đề đã loại bỏ khoảng trắng thừa, hoặc trả về {"ok":false} khi thất bại. Gửi POST {"title":" Read "} đến /result sẽ cho kết quả {"ok":true,"title":"Read"}. Tiêu đề có giá trị 42 sẽ cho kết quả {"ok":false}.

Thử cả {"title":" "}: kết quả phải là {"ok":false}.

GET /result ban đầu dùng ví dụ đã cho {"title": " Read "}. 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().trim().min(1) });
export function exercise(body) {
    return { ok: true, title: body.title };
}

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

Tự luyện tập: Playground Express