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 相关文章推荐
14款NodeJS Web框架推荐
Jul 11 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
如何利用nodejs实现命令行游戏
Nov 24 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
解析php中call_user_func_array的作用
2013/06/07 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
Windows下python2.7.8安装图文教程
2016/05/26 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python面向对象之继承代码详解
2018/01/29 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
个人简历中的自我评价怎么写
2014/01/26 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
《桥》教学反思
2014/04/09 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
安全责任协议书范本
2016/03/23 职场文书