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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 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
谈谈PHP语法(3)
2006/10/09 PHP
php 无限极分类
2008/03/27 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
django settings.py 配置文件及介绍
2019/07/15 Python
python如何实现数据的线性拟合
2019/07/19 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
Python实现图片识别加翻译功能
2019/12/26 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
利用python绘制正态分布曲线
2021/01/04 Python
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
公司授权委托书范本
2014/04/03 职场文书
学校师德承诺书
2014/05/23 职场文书
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python