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实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
轻松创建nodejs服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 NodeJs
nodejs基础知识
Feb 03 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
详解Windows下安装Nodejs步骤
May 18 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
js微信分享API
2020/10/11 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
Python中使用SAX解析xml实例
2014/11/21 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
关于numpy数组轴的使用详解
2019/12/05 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
自我鉴定写作要点
2014/01/17 职场文书
大学生标准自荐书
2014/06/15 职场文书
安全施工责任书
2014/08/25 职场文书
重阳节活动总结
2014/08/27 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
python的变量和简单数字类型详解
2021/09/15 Python
总结高并发下Nginx性能如何优化
2021/11/01 Servers