nodeJs封装MongoDB的增删查改

对MongoDB的封装,主要使用express,通过npm下载mongodb包。在这里我们使用的是2.0.43版本的mongo数据库。

db.js
封装层

const express = require("express");

const MongoClient = require("mongodb").MongoClient;

// 连接数据库
//使用mongodb创建好数据库后,直接引用url,封装链接。
function _connectDB(callback){
    let url = "mongodb://127.0.0.1:27017/school";
    MongoClient.connect(url,(err,db)=>{
        console.log("数据库连接成功")
        if(err){
            callback(err,null);
            return
        }
        callback(err,db)
    })
}

// 插入单个数据
//添加数据,传入集合名,json数据,回调函数
exports.insertOne = function(collectionName,json,callback){
    _connectDB(function(err,db){
        db.collection(collectionName).insertOne(json,(err,result)=>{
            callback(err,result);
            db.close()
        })
    })
}
//删除单个数据

exports.deleteOne = function(collectionName,json,callback){
    _connectDB(function(err,db){
        db.collection(collectionName).deleteOne(json,(err,result)=>{
            callback(err,result);
            db.close();
        })
    })
}
//更新单个数据,集合名,更新前的数据,更新后的数据,回调函数
exports.updateOne = function(collectionName,json1,json2,callback){
    _connectDB(function(err,db){
        db.collection(collectionName).updateOne(json1,json2,(err,result)=>{
            callback(err,result)
            db.close()
        })
    })
}

//查询数据
//查询数据,可能存在查询分页的情况,
exports.find = function(collectionName,json,C,D){
//如果传入的参数长度是3,则C为回调函数,没有D
    if(arguments.length == 3){
        var limitnum = 0;
        var skipnum = 0;
        var callback = C;
    }else if(arguments.length == 4){ 
        var callback = D;
        var args = C;
        var limitnum = args.pagenum || 0;
        var skipnum = args.page || 0;
    }else{
        throw new Error("find参数必须是三个或四个");
    }

    const result = [];
    _connectDB(function(err,db){
        const cursor = db.collection(collectionName).find(json).limit(limitnum).skip(skipnum *limitnum)
        cursor.each((err,document)=>{
            if(err){
                callback(err,null)
                db.close()
                return
            }
            if(document != null){
                result.push(document)
            }else{
                callback(null,result)
                db.close()
            }
        })
    })
}

调用层 app.js

//使用express
const db = require("./db.js");
const express = require("express");
const { ObjectId } = require("mongodb");
const app = express();
//mongo数据的唯一id
const Objectid = require("mongodb").ObjectId;

//添加数据
app.get("/addData",(req,res)=>{
    let name = req.query.name;
    let age = req.query.age;
    //student 是集合名
    db.insertOne("student",{"id":0,"name":name,"age":age},(err,result)=>{
        if(err){
            res.send("0");
            return
        }
        res.send("1")
    })
})
//删除数据
app.get("/deleteData",(req,res)=>{
//获取传入的唯一id
    let id = req.query.delStuID;
    db.deleteOne("student",{"id":new Objectid(id)},(err,result)=>{
        if(err){
            res.send("0");
            return;
        }
        res.send("1")
    })
})
//更新数据 接收传入的name age 来更新
app.get("/updateData",(req,res)=>{
    let name = req.query.name;
    let age = req.query.age;
    let obj = {
        "name" : "jack",
        "age" : 100
    };
    let str = {
        "name" : name,
        "age" : age
    }
    db.updateOne("student",obj,str,(err,result)=>{
        if(err){
            res.send("0");
            return;
        }
        res.send("1")
    })   
})
//查询数据
//pagenum  page
app.get("/findData",(req,res)=>{
    let pagenum = parseInt(req.query.pagenum);
    let page = parseInt(req.query.page);
    db.find("student",{},{"pagenum":pagenum,"page":page},function(err,result){
        if(err){
            res.send("0")
            return
        }
        res.send(result)
    })
})

//监听端口号
app.listen(3000)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js中进行数据库的增删查改操作是非常常见和重要的。通过使用Node.js的数据库连接库,比如MySQL模块,你可以轻松地实现这些功能。 在增加数据方面,你可以使用INSERT语句将数据插入到数据库表中。例如,使用以下代码将一条新的用户信息插入到user表中: ```javascript conn.query('INSERT INTO user (username, age) VALUES ("lisi", 25)', function(err, result){ if(err) throw err; console.log("插入数据成功"); }); ``` 这将在user表中插入一条新的记录,用户名为"lisi",年龄为25。 在删除数据方面,你可以使用DELETE语句删除数据库表中的数据。例如,使用以下代码删除用户名为"lisi"的用户信息: ```javascript conn.query('DELETE FROM user WHERE username = "lisi"', function(err, result){ if(err) throw err; console.log("删除数据成功"); }); ``` 这将从user表中删除用户名为"lisi"的记录。 在查询数据方面,你可以使用SELECT语句从数据库表中获取数据。例如,使用以下代码查询所有用户的信息: ```javascript conn.query('SELECT * FROM user', function(err, result){ if(err) throw err; console.log(result); }); ``` 这将从user表中获取所有用户的信息并打印出来。 在更新数据方面,你可以使用UPDATE语句更新数据库表中的数据。例如,使用以下代码将用户名为"lisi"的用户信息的id字段更新为3: ```javascript conn.query('UPDATE user SET id = 3 WHERE username = "lisi"', function(err, result){ if(err) throw err; console.log("更新数据成功"); }); ``` 这将更新user表中用户名为"lisi"的记录的id字段为3。 通过以上的代码示例,你可以在Node.js中实现数据库的增删查改操作。这些操作可以帮助你处理和管理数据库中的数据。希望这些信息对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [nodejs连接mysql并进行简单的增删查改](https://blog.csdn.net/weixin_30519071/article/details/97850419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值