[英]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.