MongoDB在nodejs中使用(简易封装)

/在前端开发过程中,有的时候后端接口和数据没有给过来的时候,这时候为了在不影响项目进度的条件下,有的时候也需要前段搭建一个简易的服务器,建立一个数据库,进行前后端交互的操作,这时候,我们使用nodejs来搭建服务器的话是比较轻松的,因为nodejs的语法和JavaScript的语法几乎一样,而我们服务器搭建起来后呢,就需要进行一系列的数据库操作,当然,在这里首先推荐的数据库是MongoDB,因为MongoDB也是被称为NoSql的。所以,当我们使用MongoDB数据库时,配合nodejs,可以轻松快捷的进行兜库操作,提升开发效率,下面,就是简易封装的兜库操作。/
// 因为这个封装使用了第三方包mongodb 所以,在开始使用前需要安装第三方包
在终端安装第三方包 npm i mongodb -S

//1、引入这个包
let mongodb = require('mongodb')     

//2、创建服务器链接地址,如果localhost被占用可以换成127.0.0.1
let url = 'mongodb://localhost:27017'
//3、创建链接库的库名
**let dbName = ' liu '   // liu 为本人的 仓库名  使用时换成自己的库名  (database)**
**/*obj 必传参数 是一个对象 ,
tableName:表名,
data 查删增为对象,改为数组,数组传两个对象 ,第一个,需要修改的数据的条件,第二个,修改的数据  
cb  回调函数
写法实例
{                                   
 tableName:表名,
 data:{增删查}  ||  [{改前},{改后}]  
 cb(result){
     console.log(result)
 }
}**

*/
//增
let insert =(obj)=>{
    //使用mongodb包的connect来实例化一个链接体 这个方法回调函数中的clinet是返回一个已经链接到服务器端上的连接体
    mongodb.connect(url,{useUnifiedTopology:true},(err,clinet)=>{  
        if(err) throw err
        let db = clinet.db(dbName) // 服务器链接体链接库名  返回链接到库的链接体 
        let colltions=db.collection(obj.tableName) //库链接体链接集合名,返回到链接到集合的链接体
        colltions.insertOne(obj.data,(err,result)=>{  // 集合链接体进行数据的操作,
            if(err) throw err
            obj.cb(result.result)  //返回格式为{ n: 1, nModified: 0, ok: 1 }  n 发生改变的条数 nModified 未修改的条数  ok  1 为成功 0为失败
            clinet.close()
        }) 
    })
}
//删
let removeDate =(obj)=>{
    mongodb.connect(url,{useUnifiedTopology:true},(err,clinet)=>{
        if(err) throw err 
        let db = clinet.db(dbName)
        let colltions=db.collection(obj.tableName)
        colltions.deleteOne(obj.data,(err,result)=>{
            if(err) throw err
            obj.cb(result.result)
             //返回格式为{ n: 1, nModified: 0, ok: 1 }  n 发生改变的条数 nModified 未修改的条数  ok  1 为成功 0为失败
            clinet.close()
        }) 
    })
}
//改
let update =(obj)=>{
    mongodb.connect(url,{useUnifiedTopology:true},(err,clinet)=>{
        if(err) throw err
        let db = clinet.db(dbName)
        let oldval = obj.data[0]
        let newval = obj.data[1]
        let colltions=db.collection(obj.tableName)
        colltions.updateOne(oldval,newval,(err,result)=>{
            if(err) throw err
            obj.cb(result.result)
             //返回格式为{ n: 1, nModified: 0, ok: 1 }  n 发生改变的条数 nModified 未修改的条数  ok  1 为成功 0为失败
            clinet.close()
        }) 
    })
}
//查
let find =(obj)=>{
    mongodb.connect(url,{useUnifiedTopology:true},(err,clinet)=>{
        if(err) throw err
        let db = clinet.db(dbName)
        let colltions=db.collection(obj.tableName)
        colltions.find(obj.data).toArray((err,resullt)=>{
            if(err) throw err
            obj.cb(resullt) // 返回一个数组,数组里面每一个对象对应所查询的每一条数据  如果数据为空,则返回一个空数组
            
            clinet.close()
        })
    })
}
let findT =(obj)=>{    //分页查询
   
        mongodb.connect(url,{useUnifiedTopology:true},(err,clinet)=>{
        if(err) throw err
        let db = clinet.db(dbName)
        let colltions=db.collection(obj.tableName)  
        colltions.find( ).skip(obj.page*1).limit(obj.num*1).toArray((err,resullt)=>{
            if(err) throw err
            obj.cb(resullt)
            clinet.close()
        })
    })
} 
module.exports={
    find,   
    update,
    removeDate,
    insert,
    findT 
}

你可能感兴趣的:(nodejs,nodejs,mongodb,js,javascript)