Mongodb資料庫連線

龍恩0707發表於2018-06-13

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
這個版本的,會導致資料庫連線失敗;如下圖所示:

相關文章