簡體   English   中英

Express 驗證器無法正確驗證數據

[英]Express validator fails to validate data correctly

您好,我正在使用最新版本的 express-validator 來驗證我的請求正文,問題是當我使用 notEmpty() 或 not().isEmpty() 時,它總是顯示我輸入的私人消息錯誤“文本字段是必需的" 即使文本字段不為空,這也是我的 validator.js 文件

import { body } from "express-validator";

export const checkPost = () => {
  return [
    body("text")
    .trim()
    .notEmpty()
    .withMessage("text field is required")
  
 ];
};

 

這是我的 route.js:

router.post("/", checkPost(), uploadImg, createPost);

這是我的 controller.js

export const createPost = async (req, res) => {
 try {
   const errors = validationResult(req);

   if (!errors.isEmpty()) {
     return res.json({ errors: errors.array() });
   } ....

這是我得到的回應:

{
"errors": [
    {
        "value": "",
        "msg": "text field is required",
        "param": "text",
        "location": "body"
    }
 ]
}

任何人都可以幫助我嗎?

在處理正文字段之前,您需要設置正文解析器中間件。 例如,嘗試像這樣設置您的路線(如果您將正文作為 json 發送):

router.post("/", express.json(), checkPost(), uploadImg, createPost);

經過幾個小時的搜索后,我發現應該在使用 multer 后調用 express-validator 中間件,因此以這種方式改變我的路線解決了問題

router.post("/",uploadImg, checkPost(), createPost);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM