Express Validator 主体不起作用
Express Validator body not function
我正在使用 express-validator 版本 6.11.1 验证来自 API 调用的数据输入,每次我使用 check 或 body 进行验证时,我都会收到以下错误:
TypeError: body(...).not(...).IsEmpty 不是函数
我使用下面的代码创建了一个名为 validator.js 的助手
const { body, validationResult } = require('express-validator')
const bcrypt = require('bcrypt')
const signupValidation = () => {
return [
body('firstname')
.not().IsEmpty().withMessage('Firstname field is required'),
body('lastname')
.not().IsEmpty().withMessage('Lastname field is required')
]
}
const validate = (req, res, next) => {
const errors = validationResult(req)
if (errors.isEmpty()) {
return next()
}
const extractedErrors = []
errors.array().map(err => extractedErrors.push({ msg: err.msg }))
res.status(200).json({
statusCode: 422,
error: extractedErrors
})
}
module.exports = {
signupValidation,
validate
}
我调用的路由看起来像
const { signupValidation, validate } = require('../../helpers/validator')
//Endpoint to create new merchant
router.post('/account/create-merchant', signupValidation(), validate, async (req, res) => {
res.status(200).json({
statusCode: 201,
message: req.body
})
})
示例数据来自 API
{
"firstname": "",
"lastname": "Jon",
"phone" : "*****",
"email" : "oayayayaya",
"password": "******"
}
能否指导我如何解决错误消息(TypeError:body(...).not(...).IsEmpty 不是函数)
我认为应该是 isEmpty()
而不是 IsEmpty()
,试试这个:
const signupValidation = () => {
return [
body('firstname')
.not().isEmpty().withMessage('Firstname field is required'),
body('lastname')
.not().isEmpty().withMessage('Lastname field is required')
]
}
查看文档here
我正在使用 express-validator 版本 6.11.1 验证来自 API 调用的数据输入,每次我使用 check 或 body 进行验证时,我都会收到以下错误:
TypeError: body(...).not(...).IsEmpty 不是函数
我使用下面的代码创建了一个名为 validator.js 的助手
const { body, validationResult } = require('express-validator')
const bcrypt = require('bcrypt')
const signupValidation = () => {
return [
body('firstname')
.not().IsEmpty().withMessage('Firstname field is required'),
body('lastname')
.not().IsEmpty().withMessage('Lastname field is required')
]
}
const validate = (req, res, next) => {
const errors = validationResult(req)
if (errors.isEmpty()) {
return next()
}
const extractedErrors = []
errors.array().map(err => extractedErrors.push({ msg: err.msg }))
res.status(200).json({
statusCode: 422,
error: extractedErrors
})
}
module.exports = {
signupValidation,
validate
}
我调用的路由看起来像
const { signupValidation, validate } = require('../../helpers/validator')
//Endpoint to create new merchant
router.post('/account/create-merchant', signupValidation(), validate, async (req, res) => {
res.status(200).json({
statusCode: 201,
message: req.body
})
})
示例数据来自 API
{
"firstname": "",
"lastname": "Jon",
"phone" : "*****",
"email" : "oayayayaya",
"password": "******"
}
能否指导我如何解决错误消息(TypeError:body(...).not(...).IsEmpty 不是函数)
我认为应该是 isEmpty()
而不是 IsEmpty()
,试试这个:
const signupValidation = () => {
return [
body('firstname')
.not().isEmpty().withMessage('Firstname field is required'),
body('lastname')
.not().isEmpty().withMessage('Lastname field is required')
]
}
查看文档here