NodeJs+Vue+MongoDB后台管理系统模板(1)封装MongoDB模块

封装相关的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,哈哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章