封裝相關的MongoDB模塊首先少不了的就是安裝相關組件:
npm install [email protected] --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,哈哈。