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的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
PHP和NodeJs开发的应用如何共用Session
Apr 16 NodeJs
NodeJs的优势和适合开发的程序
Aug 14 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
Nodejs回调加超时限制两种实现方法
Jun 09 NodeJs
Windows下使用Nodejs运行js的方法
Sep 02 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 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
安装APACHE
2007/01/15 PHP
PHP 数组基础知识小结
2010/08/20 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
Prototype String对象 学习
2009/07/19 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
jQuery操作css样式
2017/05/15 jQuery
node.js 发布订阅模式的实例
2017/09/10 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
pandas string转dataframe的方法
2018/04/11 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
django 实现简单的插入视频
2020/04/07 Python
python 实现Harris角点检测算法
2020/12/11 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
编辑个人求职信范文
2013/09/21 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
工程进度款催款函
2015/06/24 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers
代码复现python目标检测yolo3详解预测
2022/05/06 Python