我想防止将用户输入插入到MongoDB中。 我想正确验证用户输入。
Joi提供了基于模式的验证,以便测试用户输入。 听起来确实不错。
猫鼬本身也有模式,有什么区别?
使用Joi模式并使用mongojs插件代替猫鼬怎么样?
答案 0 :(得分:1)
猫鼬的模式:在这里,您可以定义模型以及将接受的模型
例如
const Schema = require('mongoose').Schema;
const UserSchema = new Schema ({
username: String
email: String
})
const User = mongoose.module("user", UserSchema))
您在这里说的是,用户模型将仅接受用户名和电子邮件,并且两者均为字符串。
Joi的架构::在此定义验证规则,以在创建接收到的文档之前验证接收到的数据。
例如。
const receivedData = {username: "John Doe", email: "doe.john@gmail.com"}
const Joi = require('joi');
const schema = Joi.object().keys({
username: Joi.string().alphanum().min(3).max(30).required(),
email: Joi.string().email()
})
const result = Joi.validate(receivedData, schema)
这就是您使用Joi模式定义规则的方式
username
字段必须是字符串,字母数字,长度在3到30之间。email
字段必须是字符串和电子邮件结果将以对象的形式存储在result
常量中。
我以前没有使用过mongojs
,但Joi并没有使用Mongoose。所以我想使用monojs
会很好。