我是Node JS的新手,并没有使用任何这些模块。我可以请求帮助这两个验证器中的哪一个更好,更有效地使用?
验证: https://www.npmjs.com/package/validator
快速验证器: https://www.npmjs.com/package/express-validator
非常感谢任何帮助。非常感谢你。
答案 0 :(得分:2)
它们用于不同的场景:
validator
是一个用于验证任何类型对象的库,它与任何框架无关。
express-validator
使用validator
库来验证expressjs
路由。基本上,您可以使用验证器lib验证快速路由。
在我看来,您可以轻松创建自己的验证器中间件。特别是如果您是Node.js的新手,它将帮助您了解中间件的工作原理。如果您对此不感兴趣,并且express
申请可以随时使用express-validator
另外,我真的推荐JOI作为验证器lib https://github.com/hapijs/joi,它很简单,效果很好。
以下是中间件(我尚未测试)的示例
const Joi = require('joi')
module.exports = function validate(joiSchema) {
return async (req, res, next) => {
const result = Joi.validate(req.body, joiSchema, {
allowUnknown: true,
abortEarly: false
})
if (result.error) {
throw new result.error
}
await next()
}
}
// express route
router.post(
'/create',
validateMiddleware({
body: {
body: { firstName: Joi.string(), lastName: Joi.string() }
}
}),
(req, res, next) => {
// your logic
})
答案 1 :(得分:0)
Express-validator用作中间件,express-validator的想法是在错误输入到达您的控制器之前对其进行检查。
现在,如果您使用的是验证器,则可以创建自己的验证函数,在该函数中,您只需传递数据,它就会告诉您输入是否符合要求(就像检查电子邮件一样,这里您可以使用函数,它将检查输入给它的输入是否为函数。
如果您在结构中使用服务,那么可以使用验证器,因为我认为它比express-validator更加容易并且具有更多控制权