Nodejs中db库的封装
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利
//config.js
module.exports = {
dbUrl:'mongodb://localhost:27017',
dbName:"express",
collectionName:"user"
}
//db.js
const MongoDB = require('mongodb');
const MongoClient = MongoDB.MongoClient;
const ObjectID = MongoDB.ObjectID;
const Config = require("./config.js");
const DB={
instance:""
}
function _connectDb(operationCb){
if(!DB.instance){
MongoClient.connect(Config.dbUrl, { useUnifiedTopology: true }, function(err, db) {
if (err) throw err;
console.log("数据库已创建!");
DB.instance = db;
//增 删 改 查等操作
operationCb(DB.instance);
})
}else{
operationCb(DB.instance);
}
}
exports.find = function (Json,callback){
_connectDb(function(db){
var dbo = db.db(Config.dbName);
dbo.collection(Config.collectionName).find(Json).toArray(function(error, result) { // 返回集合中所有数据
if (error){
console.log("查询失败",error);
}else{
console.log("查询成功");
callback(result);
}
});
})
}
exports.findPageNation = function (Json,pageNumber,pageSize,callback){
_connectDb(function(db){
var dbo = db.db(Config.dbName);
dbo.collection(Config.collectionName).find(Json).limit(pageSize).skip((pageNumber-1)*pageSize).toArray(function(error, result) { // 返回集合中所有数据
if (error){
console.log("分页查询失败",error);
}else{
console.log("分页查询成功");
callback(result);
}
});
})
}
exports.insert = function (Json,callback){
_connectDb(function(db){
var dbo = db.db(Config.dbName);
dbo.collection(Config.collectionName).insertOne(Json,function(error, result) { // 返回集合中所有数据
if (error){
console.log("插入失败",error);
}else{
console.log("插入成功")
callback(result);
}
});
})
}
exports.update = function (Json1,Json2,callback){
_connectDb(function(db){
var dbo = db.db(Config.dbName);
dbo.collection(Config.collectionName).updateOne(Json1,{$set:Json2},function(error, result) { // 返回集合中所有数据
if (error){
console.log("修改失败",error);
}else{
console.log("修改成功")
callback(result);
}
});
})
}
exports.delete = function (id,callback){
_connectDb(function(db){
var dbo = db.db(Config.dbName);
var objectID = new ObjectID(id);
dbo.collection(Config.collectionName).deleteOne({"_id":objectID},function(error, result) { // 返回集合中所有数据
if (error){
console.log("删除失败",error);
}else{
console.log("删除成功")
callback(result);
}
});
})
}
exports.getObjectId = function(id){
return new ObjectID(id);
}