Mongodb数据库连接
Mongodb數(shù)據(jù)庫連接
1. 首先我們需要 在包中安裝 mongodb, 使用命令: npm install mongodb; 在安裝包后,我們需要引用該包;如下:
var mongo = require('mongodb');在Node.js中,當(dāng)需要連接Mongodb數(shù)據(jù)庫時,首先需要創(chuàng)建一個Mongodb數(shù)據(jù)庫所在服務(wù)器的Server對象,作用是指定需要連接的MongoDB數(shù)據(jù)庫所在的服務(wù)器。
2. 創(chuàng)建Server對象,如下命令:
var server = new mongo.Server(host, port, [options]);參數(shù)host: 是指定服務(wù)器所在的地址;
參數(shù)port:是指定服務(wù)器的端口號。
options參數(shù)值是一個對象,用于指定服務(wù)器需要選用的一些選項,具體的包含哪些對象可以自己百度下;這邊介紹一下最常用的參數(shù);
auto_reconnect: 該屬性為布爾值,當(dāng)屬性值為true時,在客戶端與服務(wù)器連接過程中發(fā)生錯誤時自動重建連接,默認(rèn)為false。
3. 創(chuàng)建數(shù)據(jù)庫為DB對象;
在MongoDB服務(wù)器對象創(chuàng)建成功后,需要創(chuàng)建一個代表MongoDB數(shù)據(jù)庫的DB對象,創(chuàng)建方法如下:
var db = new mongo.Db(databaseName, server, [options]);databaseName: 該參數(shù)是必須的,用于指定需要連接的數(shù)據(jù)庫名;
server: 用于指定該數(shù)據(jù)庫所在的服務(wù)器。
options為一個對象,參數(shù)可選的,具體的參數(shù)自己百度,這邊介紹一些常用的參數(shù)。
safe: 是一個布爾值,當(dāng)屬性值為true時,使用getLastError命令執(zhí)行數(shù)據(jù)的存取操作,該命令返回存取操作的執(zhí)行結(jié)果,默認(rèn)為false;
4. 數(shù)據(jù)庫連接
在Db對象創(chuàng)建后,需要使用對象的open方法執(zhí)行數(shù)據(jù)庫的鏈接操作,該方法使用如下所示:
db.open(callback);callback 是一個回調(diào)函數(shù),用于指定執(zhí)行數(shù)據(jù)庫連接操作后返回的回調(diào)函數(shù),回調(diào)函數(shù)指定方法如下:
function(err, db) {}在該回調(diào)函數(shù)中,使用二個參數(shù),第一個參數(shù)為鏈接數(shù)據(jù)庫失敗時拋出的錯誤對象,第二個參數(shù)為一個Db對象,代表鏈接成功的數(shù)據(jù)庫,當(dāng)數(shù)據(jù)庫連接失敗時,該參數(shù)值為null;
5. 關(guān)閉數(shù)據(jù)庫
當(dāng)一個數(shù)據(jù)庫不再需要使用時候,可以使用數(shù)據(jù)庫對象的close方法關(guān)閉數(shù)據(jù)庫,該方法如下所示:
db.close([forceClose], [callback]);forceClose 參數(shù)值為一個布爾值,當(dāng)該參數(shù)值為true時,強制關(guān)閉該數(shù)據(jù)庫,關(guān)閉數(shù)據(jù)庫后,不可再使用open方法打開該數(shù)據(jù)庫。
當(dāng)參數(shù)值為false,不強制關(guān)閉該數(shù)據(jù)庫,可以使用該數(shù)據(jù)庫對象的open方法打開該數(shù)據(jù)庫。
callback 為一個函數(shù),用于指定關(guān)閉數(shù)據(jù)庫連接操作后返回的回調(diào)函數(shù)。該回調(diào)函數(shù)指定如下所示:
function (err) {}該回調(diào)函數(shù)有一個參數(shù)值,表示的是為鏈接數(shù)據(jù)庫失敗時拋出的錯誤對象。
6. 監(jiān)聽數(shù)據(jù)庫的close事件
當(dāng)數(shù)據(jù)庫關(guān)閉時,觸發(fā)數(shù)據(jù)庫的對象的close事件,可以通過監(jiān)聽數(shù)據(jù)庫對象的close事件并指定回調(diào)函數(shù)的方法指定當(dāng)關(guān)閉數(shù)據(jù)庫操作執(zhí)行結(jié)束時
所需要執(zhí)行的處理,如下代碼:
該回調(diào)有2個參數(shù),第一個參數(shù)為關(guān)閉數(shù)據(jù)庫失敗時拋出的錯誤對象,第二個參數(shù)值為成功關(guān)閉的數(shù)據(jù)庫對象,當(dāng)關(guān)閉數(shù)據(jù)庫失敗時該參數(shù)值為null.
下面是鏈接數(shù)據(jù)庫的簡單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('成功建立數(shù)據(jù)庫連接');db.close();} });db.on('close', function(err, db) {if (err) {throw err;} else {console.log('成功關(guān)閉數(shù)據(jù)庫連接');} });然后在項目根目錄下 執(zhí)行 node app.js, 如下圖所示:
注意:在安裝 mongodb時候,一定是需要是 2.2.33版本的mongodb, 如果我們默認(rèn)使用 npm install mongodb的話,會默認(rèn)安裝 ^3.0.10
這個版本的,會導(dǎo)致數(shù)據(jù)庫連接失敗;如下圖所示:
總結(jié)
以上是生活随笔為你收集整理的Mongodb数据库连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归,汉诺塔游戏
- 下一篇: MySQL绿色版5.7以上安装教程