Asked Apr 23rd, 2022 2:31 p.m. 102 0 1
  • 102 0 1
+1

Validate param và body trong express

Share
  • 102 0 1

Cho mình hỏi là Mình đang làm cái validate ObjectId mongodb. Mình đang cần check cái ObjectId có hợp lệ không, vì trong này có nhiều cái sử dụng Id nên mình viết riêng một cái validateObjectId Lúc đó mình yêu cầu cần biết cái param là gì để validate mình dùng Joi Nhưng k hiểu sao ở route mình truyển tham số vào nó lại báo lỗi

router
  .route('/:documentId/receivers/:receiverId')
  .put(
    paramValidation.objectId(['documentId', 'receiverId']),
    documentValidation.updateReadDate,
    documentController.updateReadDate
  );

Lỗi như hình image.png

Mình thử cách khác là validate param ở trong chính cái hàm validate tiếp theo không cần dùng validateObjectId mà lúc này mình phải validate cả param và cả body lúc này mình viết ra 2 validate Joi Không biết có cách nào validate trong 1 cái không ạ

1 ANSWERS


Answered Apr 29th, 2022 10:07 p.m.
+1
  • Hi, bạn có thể sử dụng class-validator kết hợp cùng class-transformer để validate input.
  • Về phần lỗi kia có thể do put chỉ nhận tham số kiểu RequestHandler (của express), còn paramValidation.objectId(['documentId', 'receiverId']) thì không return kiểu RequestHandler.
Share
Avatar HungHocHoi @HungSmeb
Apr 30th, 2022 4:00 a.m.

Cảm ơn bạn, do mình làm từ đầu bằng joi, để mình thử 2 cái kia xem

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.