下面是mongodb操作的模块手动封装的完整攻略:
1.准备工作
在使用MongoDB之前,需要安装mongoose、mongodb两个npm包。
npm install mongoose mongodb
2.创建数据库连接池
创建一个数据库连接池对象用于操作数据库,避免频繁地打开和关闭数据库连接。下面的示例代码演示如何创建数据库连接池,其中,DATABASE_URL是你的MongoDB数据库的URL,即mongodb://主机名:端口号/数据库名。
const mongoose = require('mongoose')
const DATABASE_URL = 'mongodb://localhost:27017/mydatabase'
const options = {
useNewUrlParser: true,
useUnifiedTopology: true
}
const db = mongoose.createConnection(DATABASE_URL, options)
db.on('error', () => {
console.error('connect to %s error', DATABASE_URL)
process.exit(1)
})
db.once('open', () => {
console.log('connect to %s success', DATABASE_URL)
})
module.exports = db
3.封装数据模型
使用mongoose.Schema()创建数据模型,并附上固定结构的字段及数据类型。
const mongoose = require('mongoose')
const UserInfoSchema = mongoose.Schema({
username:String,
password:String,
age:Number,
sex:String,
phoneNumber:Number,
email:String,
})
module.exports = mongoose.model('user_info', UserInfoSchema)
4.封装数据操作方法
封装数据操作方法,包括增删改查。在这里,以CRUD(增删改查)为例,示例代码演示如何操作。
const UserInfo = require('./models/user_info')
async function createUser(user) {
const newUser = new UserInfo(user)
await newUser.save()
}
async function updateUser(userId, user) {
await UserInfo.findByIdAndUpdate(userId, user)
}
async function deleteUser(userId) {
await UserInfo.findByIdAndDelete(userId)
}
async function findUserById(userId) {
return await UserInfo.findById(userId)
}
async function listUsers() {
return await UserInfo.find()
}
module.exports = {
createUser,
updateUser,
deleteUser,
findUserById,
listUsers
}
5.使用模块
在应用程序中使用封装好的模块,其中,下面的示例代码演示了如何使用封装好的模块。
const db = require('./db')
const userController = require('./controllers/user_controller')
const user = {
username:'testuser',
password:'1234567',
email:'testuser@email.com',
sex:'male',
age: 18,
phoneNumber:'13688888888'
}
await userController.createUser(user)
const users = await userController.listUsers()
console.log(users)
以上就是mongodb操作的模块手动封装的完整攻略和两条示例说明。有任何疑问,请随时在留言区提出。