当前位置: 首页 > news >正文

Mongodb数据库连接

Mongodb数据库连接

1. 首先我们需要 在包中安装 mongodb, 使用命令: npm install mongodb; 在安装包后,我们需要引用该包;如下:

var mongo = require('mongodb');

在Node.js中,当需要连接Mongodb数据库时,首先需要创建一个Mongodb数据库所在服务器的Server对象,作用是指定需要连接的MongoDB数据库所在的服务器。

2. 创建Server对象,如下命令:

var server = new mongo.Server(host, port, [options]);

参数host: 是指定服务器所在的地址;
参数port:是指定服务器的端口号。
options参数值是一个对象,用于指定服务器需要选用的一些选项,具体的包含哪些对象可以自己百度下;这边介绍一下最常用的参数;

auto_reconnect: 该属性为布尔值,当属性值为true时,在客户端与服务器连接过程中发生错误时自动重建连接,默认为false。

3. 创建数据库为DB对象;

在MongoDB服务器对象创建成功后,需要创建一个代表MongoDB数据库的DB对象,创建方法如下:

var db = new mongo.Db(databaseName, server, [options]);

databaseName: 该参数是必须的,用于指定需要连接的数据库名;
server: 用于指定该数据库所在的服务器。
options为一个对象,参数可选的,具体的参数自己百度,这边介绍一些常用的参数。

safe: 是一个布尔值,当属性值为true时,使用getLastError命令执行数据的存取操作,该命令返回存取操作的执行结果,默认为false;

4. 数据库连接

在Db对象创建后,需要使用对象的open方法执行数据库的链接操作,该方法使用如下所示:

db.open(callback);

callback 是一个回调函数,用于指定执行数据库连接操作后返回的回调函数,回调函数指定方法如下:

function(err, db) {
  
}

在该回调函数中,使用二个参数,第一个参数为链接数据库失败时抛出的错误对象,第二个参数为一个Db对象,代表链接成功的数据库,当数据库连接失败时,该参数值为null;

5. 关闭数据库

当一个数据库不再需要使用时候,可以使用数据库对象的close方法关闭数据库,该方法如下所示:

db.close([forceClose], [callback]);

forceClose 参数值为一个布尔值,当该参数值为true时,强制关闭该数据库,关闭数据库后,不可再使用open方法打开该数据库。
当参数值为false,不强制关闭该数据库,可以使用该数据库对象的open方法打开该数据库。

callback 为一个函数,用于指定关闭数据库连接操作后返回的回调函数。该回调函数指定如下所示:

function (err) {}

该回调函数有一个参数值,表示的是为链接数据库失败时抛出的错误对象。

6. 监听数据库的close事件
当数据库关闭时,触发数据库的对象的close事件,可以通过监听数据库对象的close事件并指定回调函数的方法指定当关闭数据库操作执行结束时
所需要执行的处理,如下代码:

function(err, db) {}

该回调有2个参数,第一个参数为关闭数据库失败时抛出的错误对象,第二个参数值为成功关闭的数据库对象,当关闭数据库失败时该参数值为null.

下面是链接数据库的简单demo,代码如下:

package.json 代码如下:

{
  "name": "mdb",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mongodb": "^2.2.33"
  }
}

在项目中的根目录下新建一个 app.js, 代码如下:

const mongo = require('mongodb');
const Server = mongo.Server;
const Db = mongo.Db;

const server = new Server('localhost', '27017', { auto_reconnect: true });
const db = new Db('dataDb', server, { safe: true });

db.open(function(err, db) {
  if (err) {
    throw err;
  } else {
    console.log('成功建立数据库连接');
    db.close();
  }
});

db.on('close', function(err, db) {
  if (err) {
    throw err;
  } else {
    console.log('成功关闭数据库连接');
  }
});

然后在项目根目录下 执行 node app.js, 如下图所示:

注意:在安装 mongodb时候,一定是需要是 2.2.33版本的mongodb, 如果我们默认使用 npm install mongodb的话,会默认安装 ^3.0.10
这个版本的,会导致数据库连接失败;如下图所示:

转载于:https://www.cnblogs.com/tugenhua0707/p/9180829.html

相关文章:

  • ROS常用工具
  • Java基础随笔2
  • python3练习100题——026
  • Nodejs学习笔记(七)—Node.js + Express 构建网站简单示例
  • 求最短路径(Bellman-Ford算法与Dijkstra算法)
  • 49. Group Anagrams - LeetCode
  • 1 年经验 Java 求职面试题
  • 有赞11·11:全链路压测方案设计与实施详解
  • 输入处理与安全性
  • 基于结构的距离度量
  • partprobe 和 partx 的用法
  • 开发环境问题
  • 【咸鱼教程】本地图片上传。动态GIF表情图生成
  • HTML_列表标签
  • docker基础
  • [译] React v16.8: 含有Hooks的版本
  • 【个人向】《HTTP图解》阅后小结
  • Android框架之Volley
  • GitUp, 你不可错过的秀外慧中的git工具
  • Iterator 和 for...of 循环
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • MySQL用户中的%到底包不包括localhost?
  • Redis在Web项目中的应用与实践
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 深入浅出Node.js
  • 微信小程序--------语音识别(前端自己也能玩)
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • $.ajax()参数及用法
  • (JS基础)String 类型
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (论文阅读11/100)Fast R-CNN
  • (五)c52学习之旅-静态数码管
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)nsfocus-绿盟科技笔试题目
  • (转)Scala的“=”符号简介
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 设计模式初探
  • [20140403]查询是否产生日志
  • [Android]常见的数据传递方式
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [C#]winform部署yolov5-onnx模型
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE
  • [Hive] 常见函数
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页
  • [iOS]把16进制(#871f78)颜色转换UIColor
  • [LeetCode] Longest Common Prefix 字符串公有前序
  • [MTK]安卓8 ADB执行ota升级
  • [nowCoder] 两个不等长数组求第K大数
  • [RQNOJ 696] 【树形DP】
  • [socket 弹 shell] msg_box3
  • [Unity] Unity3D研究院编辑器之独立Inspector属性