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简单实现中英文翻译
May 04 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
async/await与promise(nodejs中的异步操作问题)
Mar 03 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
nodejs实现聊天机器人功能
Sep 19 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 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
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
解决python3 json数据包含中文的读写问题
2018/05/10 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
材料加工硕士生求职信
2013/10/10 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
机关单位动员会主持词
2014/03/20 职场文书
学校班班通实施方案
2014/06/11 职场文书
财务工作失职检讨书
2014/11/21 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
python常见的占位符总结及用法
2021/07/02 Python
php双向队列实例讲解
2021/11/17 PHP