对于一个用户模型,可以定义用户名、邮箱、密码等字段及其类型(如字符串、数字等)。这使得数据的存储和操作更加规范,避免了数据的随意性和混乱。比如,在没有使用 Mongoose 的情况下,可能会在数据库中存储各种格式不一致的用户数据,而使用 Mongoose 后,所有用户数据都必须符合预定义的 Schema 结构,保证了数据的一致性。
Mongoose
相比直接使用 MongoDB
的好处Mongoose
通过 Schema
定义数据结构,包括数据类型、默认值、验证器等。这使得数据存储更加规范,避免了数据的随意性和混乱。Mongoose
内置了丰富的数据验证功能,可以确保数据在保存到数据库前符合预期格式。支持多种基本类型验证以及自定义验证器,减少了无效数据存储的风险,提高了数据质量。find()、save()、findByIdAndUpdate()、findByIdAndDelete()
等。这些方法使得开发者无需编写复杂的原生 MongoDB
查询语句,降低了开发难度。Mongoose
的操作方法返回 Promise
对象,方便使用 async/await
语法进行异步操作。避免了回调地狱问题,提高了代码的可维护性。async/await
时,可以通过 try/catch
语句块集中处理错误,统一返回错误信息。Mongoose
创建一个数据处理模块Mongoose
在 Node.js 项目中,首先需要安装Mongoose
。打开终端
npm install mongoose
main.js
数据处理模块用于连接到 MongoDB
数据库,新建model/index.js
const mongoose = require("mongoose");
async function main() {
await mongoose.connect("mongodb://127.0.0.1:27017/express-template");
}
Promise
main()
.then((res) => {
console.log("数据库连接成功");
})
.catch((err) => {
console.log("数据库连接失败");
});
Schema
Schema
是 Mongoose
中定义文档结构的方式。在model/index.js
中定义 Schema
const users = new mongoose.Schema({
username: {
type: String,
required: true,
},
age: {
type: Number,
required: true,
},
});
Schema
创建一个 User 模型const userModel = mongoose.model("User", users);
User
实例const user1 = new userModel({ username: "xiaoyi", age: 20 });
user1.save();
main.js
const mongoose = require("mongoose");
async function main() {
await mongoose.connect("mongodb://127.0.0.1:27017/express-template");
}
main()
.then((res) => {
console.log("数据库连接成功");
})
.catch((err) => {
console.log("数据库连接失败");
});
const users = new mongoose.Schema({
username: {
type: String,
required: true,
},
age: {
type: Number,
required: true,
},
});
const userModel = mongoose.model("User", users);
const user1 = new userModel({ username: "xiaoyi", age: 20 });
user1.save();
Mongodb
服务cmd
启动服务net start MongoDB
node ./model/index.js
Navicat
数据库开发工具,查看创建的User模型原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。