nodejs对mongodb数据库的增加修删该查实例代码


Posted in NodeJs onJanuary 05, 2020

以下是实例代码:

/**
1.npm install mongodb --save-dev / cnpm install mongodb --save-dev

2.var MongoClient = require('mongodb').MongoClient;

 var url = 'mongodb://localhost:27017/test';  连接数据库的地址

 3.连接数据库

 MongoClient.connect(url, function(err, db) {

});

 4.实现增加修改删除

 MongoClient.connect(url, function(err, db) {

  db.collection('user').insertOne({'name':'zhangsan'},function(error,data){

  })

});


 */
var http=require('http');

var ejs=require('ejs');

var MongoClient = require('mongodb').MongoClient; /*引入数据库 MongoClient*/

var DBurl = 'mongodb://localhost:27017/userDb'; // 连接数据库的地址  student表示数据库的名称

var url=require('url'); /*引入url模块*/
var app=require('./model/express-route.js');

http.createServer(app).listen(3000);


app.get('/',function(req,res){
  var msg='这是数据库的数据'
  ejs.renderFile('views/index.ejs',{msg:msg},function(err,data){
    res.send(data);
  })

})



app.get('/add',function(req,res){
  //增加数据

  MongoClient.connect(DBurl,function(err,db){ /*连接数据库*/

    if(err){

      console.log(err);
      console.log('数据库连接失败');
      return;
    }

    //增加数据

    db.collection('user').insertOne({

      "name":"loaderman",
      "age":10

    },function(error,result){
      if(error){

        console.log('增加数据失败');
        return;
      }
      res.send('增加数据成功');
      db.close();/*关闭数据库*/
    })



  })
})




app.get('/edit',function(req,res){
  //增加数据

  //res.send('修改数据成功');


  MongoClient.connect(DBurl,function(err,db){

    if(err){

      console.log(err);
      console.log('数据库连接失败');
      return;
    }
    db.collection('user').updateOne({"name":"loaderman"},{$set:{
      "age":666
    }},function(error,data){
      if(error){

        console.log('修改数据失败');
        return;
      }

      console.log(data);
      res.send('修改数据成功');
      db.close();/*关闭数据库*/

    })



  })

})


app.get('/delete',function(req,res){
  //增加数据
  //delete?name=lisi


  //console.log(url.parse(req.url,true));

  var query=url.parse(req.url,true).query;


  //console.log(query.name);

  var name=query.name;


  MongoClient.connect(DBurl,function(err,db){

    if(err){

      console.log(err);
      console.log('数据库连接失败');
      return;
    }

    db.collection('user').deleteOne({"name":name},function(error,data){

      if(error){

        console.log('删除失败');
        return;
      }

      console.log(data);
      res.send('删除数据成功');
      db.close();

    })
  })
})

app.get('/query',function(req,res){
  MongoClient.connect(DBurl,function(err,db){
    if(err){

      console.log('连接数据库失败');
      return;
    }

    //查询数据
    var list=[]; /*放数据库里面查询的所有数据*/

    var result=db.collection('user').find({});


    result.each(function(error,doc){


      //console.log(doc);
        if(error){
          console.log(error);
        }else{

          if(doc!=null){
            list.push(doc);

          }else{ /*doc==null表示数据循环完成*/

            /*获取数据以后*/
            //console.log(list);

            ejs.renderFile('views/index.ejs',{list:list},function(err,data){

              res.send(data);
            })

          }

        }

    })

    //console.log(result);

  })

})

插入数据

/**
 * 插入单条数据
 * @param table_name 表名
 * @param insertData 插入的数据
 * @param callback 回调方法
 */
MongoDbAction.insertData= function (table_name, insertData , callback) {
  var node_model = this.getConnection(table_name);
  node_model.insertOne(insertData , function (err, res) {
    if (err) {
      callback(err);
    } else {
      callback(null, res);
    }
  });
};

查询数据

/**
 * 查询单条数据
 * @param table_name 表名
 * @param conditions 查询条件
 * @param callback 回调方法
 */
MongoDbAction.findOne = function (table_name, conditions, callback) {
  var node_model = this.getConnection(table_name);
  node_model.findOne(conditions, function (err, res) {
    if (err) {
      callback(err);
    } else {
      callback(null, res);
    }
  });
};

更新数据

/**
 * 更新单条数据
 * @param table_name 表名
 * @param conditions 查询条件 {"name":'jackson影琪'}; 
 * @param updateStr 更新数据 {$set: { "url" : "https://www.cnblogs.com/jackson-zhangjiang" }};
 * @param callback 回调方法
 */
MongoDbAction.updateOne= function (table_name, conditions,updateStr , callback) {
  var node_model = this.getConnection(table_name);
  node_model.updateOne(conditions,updateStr, function (err, res) {
    if (err) {
      callback(err);
    } else {
      callback(null, res);
    }
  });
};

以上就是本次介绍的全部相关知识点,感谢大家的学习。如果有任何补充,可以联系小编。

NodeJs 相关文章推荐
基于NodeJS的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 #NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 #NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 #NodeJs
NodeJS实现一个聊天室功能
Nov 25 #NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
Nov 18 #NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 #NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 #NodeJs
You might like
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
python用来获得图片exif信息的库实例分析
2015/03/16 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python序列化pickle模块使用详解
2020/03/05 Python
Python request中文乱码问题解决方案
2020/09/17 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
长青弘远的面试题
2012/06/09 面试题
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
优秀演讲稿范文
2013/12/29 职场文书
小学生安全责任书
2014/07/25 职场文书
党的生日活动方案
2014/08/15 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
家访教师心得体会
2016/01/23 职场文书
基于Redission的分布式锁实战
2022/08/14 Redis