nodejs操作mongodb的填删改查模块的制作及引入实例


Posted in NodeJs onJanuary 02, 2018

安装相关模块

如果使用这个的话,你需要先自己安装一下他需要的模块,在根目录输入

npm install mongodb --save

进行模块安装,安装成功以后就可以进行以下的步骤。

文件的引入

以下是我书写的相关代码,放到你可以引用的相关目录,本人放到了express的根目录

function Mongo(options) {
 this.settings = {
  url: 'mongodb://localhost:27017/jk',
  MongoClient:require('mongodb').MongoClient,
  assert:require('assert')
 };
 for(let i in options){
  this.settings[i] = options[i];
 }
 this._run = function (fun) {
  let that = this;
  let settings = this.settings;
  this.settings.MongoClient.connect(this.settings.url, function (err, db) {
   settings.assert.equal(null, err);
   console.log("Connected correctly to server");
   fun(db, function () {
    db.close();
   });
  });
 };
 this.insert = function (collectionName, data, func) {
  //增加数据
  let insertDocuments = function (db, callback) {
   let collection = db.collection(collectionName);
   collection.insertMany([
    data
   ], function (err, result) {
    if (!err) {
     func(true);
    } else {
     func(false);
    }
    callback(result);
   });
  };
  this._run(insertDocuments);
 };
 this.update = function (collectionName, updateData, data, func) {
  //更新数据
  let updateDocument = function (db, callback) {
   let collection = db.collection(collectionName);
   collection.updateOne(updateData
    , {$set: data}, function (err, result) {
     if (!err) {
      func(true);
     } else {
      func(false);
     }
     callback(result);
    });
  };
  this._run(updateDocument);
 };
 this.delete = function (collectionName, data, func) {
  //删除数据
  let deleteDocument = function (db, callback) {
   let collection = db.collection(collectionName);
   collection.deleteOne(data, function (err, result) {
    if (!err) {
     func(true);
    } else {
     func(false);
    }
    callback(result);
   });
  };
  this._run(deleteDocument);
 };
 this.find = function (collectionName, data, func) {
  //查找数据
  let findDocuments = function (db, callback) {
   // Get the documents collection
   let collection = db.collection(collectionName);
   // Find some documents
   collection.find(data).toArray(function (err, docs) {
    if (!err) {
     func(true,docs);
    }
    else {
     func(false, err);
    }
    callback(docs);
   });
  };
  this._run(findDocuments);
 };
}
module.exports = Mongo;

我存入到了一个名字叫server.js的文件名内

使用

我们在需要使用页面先将模块引入,比如我在路由文件index.js里面引入:

const Server = require("../server.js");

然后需要实例化对象,如下:

let server = new Server();

如果需要配置相关信息,可以在实例化的时候传入一个对象配置,可以配置数据库的地址:

let server = new Server({url:"mongodb://localhost:27017/mydb"});

里面封装了四个方法,添删改查,分别是

添加方法

server.insert(数据表名,需要插入的数据(键值对的对象),回调函数);

更新方法

server.update(数据表名,查询的数据(对象),更新的数据(对象),回调函数);

删除方法

server.delete(数据表名,查询的数据(对象),回调函数);

查找方法

server.find(数据表名,查询的数据(对象),回调函数);

回调函数都会返回两个值,第一个布尔类型,是否处理成功,第二个值,查找返回查找到的个数,别的都返回处理成功的个数(现在一次只处理一条)

使用案例

比如我需要在一个路由里面查找数据,我就需要这样:

server.find("users",{username:"username"},function (bool,data) {
  if(bool){
   console.log("查询到数据为"+data.length+"条");
  }
  else{
   console.log(data);
  }
 });
});

上面的代码是查询了users表里面username为username的字段的数据,如果成功,后面data就会返回一个数组,如果出现错误,就直接返回data错误。

以上这篇nodejs操作mongodb的填删改查模块的制作及引入实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs中使用monk访问mongodb
Jul 06 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
nodeJS微信分享
Dec 20 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
Nodejs 数组的队列以及forEach的应用详解
Feb 25 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 #NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 #NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 #NodeJs
nodejs实现简单的gulp打包
Dec 21 #NodeJs
nodejs调取微信收货地址的方法
Dec 20 #NodeJs
基于nodejs实现微信支付功能
Dec 20 #NodeJs
nodeJS微信分享
Dec 20 #NodeJs
You might like
建立文件交换功能的脚本(二)
2006/10/09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP垃圾回收机制简单说明
2010/07/22 PHP
php数组查找函数总结
2014/11/18 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
Python之PyUnit单元测试实例
2014/10/11 Python
Django返回json数据用法示例
2016/09/18 Python
Python使用type动态创建类操作示例
2020/02/29 Python
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
英语教师自荐信
2014/05/26 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
Python&Matlab实现樱花的绘制
2022/04/07 Python