封装相关的MongoDB模块首先少不了的就是安装相关组件:
npm install mongodb@2.2.36 --save
引入mongodb的MongoClient,并定义运行的MongoDB的数据位置及端口的相关信息,最后暴露相关的方法,剩下的就是封装相关增删改查的方法了,需要注意的是我因为当初学习的时候用的是较老的版本,所以直接安装的话,我的代码可能会报错,需要安装指定版本的MongoDB。
const MongoClient = require('mongodb').MongoClient;
const DbUrl = 'mongodb://localhost:9999/mobileBooksCampus';
const ObjectID = require('mongodb').ObjectID;
exports.ObjectID = ObjectID;
数据库的连接:
function __connectDb(callback){
MongoClient.connect(DbUrl,function(err,db){
if(err){
console.log('数据库连接失败');
return;
}
callback(db);
})
}
查询方法:
exports.find=function(collectionname,json,callback){
__connectDb(function(db){
var result=db.collection(collectionname).find(json);
result.toArray(function(error,data){
db.close();
callback(error,data);
})
})
};
增加方法:
exports.insert=function(collectionname,json,callback){
__connectDb(function(db){
db.collection(collectionname).insertOne(json,function(error,data){
callback(error,data);
})
})
};
修改方法:
exports.update=function(collectionname,json1,json2,callback){
__connectDb(function(db){
db.collection(collectionname).updateOne(json1,{$set:json2},function(error,data){
callback(error,data);
})
})
};
删除方法:
exports.deleteOne=function(collectionname,json,callback){
__connectDb(function(db){
db.collection(collectionname).deleteOne(json,function(error,data){
callback(error,data);
})
})
};
最终方法暴露之后,在其他的地方需要用到数据库的相关操作,直接引入相关模块,即可直接调用相关的增删改查的方法,节省代码的同时,使代码变得更加的易读。
例:该方法用于查找所有user表里age=20的所有用户
const DB = require('./../../modules/db.js');//引入封装好的模块
DB.find('user', { //调用查找函数
age:20
},(err, users)=>{
if(err){
//监听错误
}
res.send({
users
})
})
最后想要完整代码的,欢迎访问我的GitHub,最好来个Star,哈哈。