Mongoose 验证
Mongoose 是用于 node.js 环境中的 MongoDB 对象建模和处理工具。 Mongoose 验证 实际上是一个可定制的中间件,它在 mongoose schema 的 SchemaType 中进行定义。它在将文档保存到 NoSQL 数据库之前自动触发。也可以使用 doc.validate(callback) 或 doc.validateSync() 方法手动运行验证。让我们通过一些示例来更好地理解这个过程。
创建 node 应用程序并安装 Mongoose:
步骤1: 使用以下命令创建一个 node 应用程序:
mkdir folder_name
cd folder_name
npm init -y
touch main.js
步骤2: 创建完ReactJS应用程序后,使用以下命令安装所需模块:
npm install mongoose
项目结构: 将会如下所示。
示例1:
在这个示例中,我们将使用“required”验证器来检查在将值保存到数据库之前,是否向文档传递了值。
文件名:main.js
const mongoose = require('mongoose')
// Database connection
mongoose.connect('mongodb://localhost:27017/query-helpers', {
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err) :
console.log('Connected to database'));
const personSchema = new mongoose.Schema({
name: {
type: String,
required: true
}
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({});
(async () => {
try {
await person.save();
} catch (err) {
console.log(err)
}
})();
运行应用程序的步骤: 从项目的根目录使用以下命令运行应用程序:
node main.js
输出:
示例2: 在这个示例中,我们将使用“required”和“min”验证器来检查在保存到数据库之前值是否被传递给文档以及该值是否超过了阈值数。
文件名:main.js
const mongoose = require('mongoose')
// Database connection
mongoose.connect('mongodb://localhost:27017/query-helpers', {
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err) :
console.log('Connected to database'));
const personSchema = new mongoose.Schema({
age: {
type: Number,
required: true,
min: [18, 'Age must be 18 or above']
}
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({ age: 16 });
(async () => {
try {
await person.save();
} catch (err) {
console.log(err)
}
})();
运行应用的步骤: 从项目的根目录使用以下命令运行应用:
node main.js
输出:
参考: https://mongoosejs.com/docs/validation.html