Nodejs中db库的封装
发布于 3 年前 作者 feer 1320 次浏览 来自 问答
粉丝福利 : 关注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);
}
回到顶部