Thực thi một backend sử dụng Express, Mongoose ODM, và Jest (phần 11)

Viết hàm dịch vụ đầu tiên của chúng ta: createPost

Cho hàm dịch vụ đầu tiên của chúng ta, chúng ta sẽ tạo một hàm để tạo một post mới. Chúng ta sau đó có thể viết
các tests cho nó bằng cách thẩm định rằng hàm create tạo một post mới với các đặc tính chỉ ra. Đi theo các bước này:
1. Tạo một src/services/posts.js file mới.
2. Trong src/services/posts.js file, trước tiên nhập khẩu Post model:

import { Post } from ‘../db/models/post.js’

3. Định nghĩa một hàm createPost mới, cái lấy một object với title, author, contents, và tags như các đối số và
tạo và trả về một post mới:

export async function createPost({ title, author, contents, tags
}) {

const post = new Post({ title, author, contents, tags })
return await post.save()

}

Chúng ta cụ thể liệt kê tất cả các đặc tính cái chúng ta muốn người dùng có thể cung cấp ở đây thay vì đơn giản
truyền toàn bộ object tới new Post() constructor. Trong khi chúng ta cần gõ nhiều code hơn theo cách này, nó cho
phép chúng ta có kiểm soát trên các đặc tính một người dùng nên là có thể thiết lập. Ví dụ, nếu chúng ta sau này
thêm các quyền được phép vào các models CSDL, chúng ta có thể tình cờ cho phép người dùng thiết lập các quyền
đó ở đây, nếu chúng ta quên loại ra các đặc tính đó. Cho các lí do an ninh đó, nó luôn là thực hành tốt để có
một danh sách các đặc tính được phép thay vì đơn giản truyền xuống toàn bộ object.
Sau khi viết hàm dịch vụ đầu tiên của chúng ta, hãy tiếp tục bằng cách viết test cases cho nó.

Chia sẻ