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