您好,登錄后才能下訂單哦!
不懂mongodb關(guān)閉數(shù)據(jù)庫連接的方法?其實(shí)想解決這個(gè)問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。
mongodb連接數(shù)據(jù)庫關(guān)閉數(shù)據(jù)庫連接的方法:
1、首先我們需要 在包中安裝 mongodb, 使用命令: npm install mongodb; 在安裝包后,我們需要引用該包;如下:
var mongo = require('mongodb');
在Node.js中,當(dāng)需要連接Mongodb數(shù)據(jù)庫時(shí),首先需要?jiǎng)?chuàng)建一個(gè)Mongodb數(shù)據(jù)庫所在服務(wù)器的Server對(duì)象,作用是指定需要連接的MongoDB數(shù)據(jù)庫所在的服務(wù)器。
2、創(chuàng)建Server對(duì)象,如下命令:
var server = new mongo.Server(host, port, [options]);
參數(shù)host: 是指定服務(wù)器所在的地址;
參數(shù)port:是指定服務(wù)器的端口號(hào)。
options參數(shù)值是一個(gè)對(duì)象,用于指定服務(wù)器需要選用的一些選項(xiàng),具體的包含哪些對(duì)象可以自己百度下;這邊介紹一下最常用的參數(shù);
auto_reconnect: 該屬性為布爾值,當(dāng)屬性值為true時(shí),在客戶端與服務(wù)器連接過程中發(fā)生錯(cuò)誤時(shí)自動(dòng)重建連接,默認(rèn)為false。
3、創(chuàng)建數(shù)據(jù)庫為DB對(duì)象;
在MongoDB服務(wù)器對(duì)象創(chuàng)建成功后,需要?jiǎng)?chuàng)建一個(gè)代表MongoDB數(shù)據(jù)庫的DB對(duì)象,創(chuàng)建方法如下:
var db = new mongo.Db(databaseName, server, [options]);
databaseName: 該參數(shù)是必須的,用于指定需要連接的數(shù)據(jù)庫名;
server: 用于指定該數(shù)據(jù)庫所在的服務(wù)器。
options為一個(gè)對(duì)象,參數(shù)可選的,具體的參數(shù)自己百度,這邊介紹一些常用的參數(shù)。
safe: 是一個(gè)布爾值,當(dāng)屬性值為true時(shí),使用getLastError命令執(zhí)行數(shù)據(jù)的存取操作,該命令返回存取操作的執(zhí)行結(jié)果,默認(rèn)為false;
4、數(shù)據(jù)庫連接
在Db對(duì)象創(chuàng)建后,需要使用對(duì)象的open方法執(zhí)行數(shù)據(jù)庫的鏈接操作,該方法使用如下所示:
db.open(callback);
callback 是一個(gè)回調(diào)函數(shù),用于指定執(zhí)行數(shù)據(jù)庫連接操作后返回的回調(diào)函數(shù),回調(diào)函數(shù)指定方法如下:
function(err, db) { }
在該回調(diào)函數(shù)中,使用二個(gè)參數(shù),第一個(gè)參數(shù)為鏈接數(shù)據(jù)庫失敗時(shí)拋出的錯(cuò)誤對(duì)象,第二個(gè)參數(shù)為一個(gè)Db對(duì)象,代表鏈接成功的數(shù)據(jù)庫,當(dāng)數(shù)據(jù)庫連接失敗時(shí),該參數(shù)值為null;
5、關(guān)閉數(shù)據(jù)庫
當(dāng)一個(gè)數(shù)據(jù)庫不再需要使用時(shí)候,可以使用數(shù)據(jù)庫對(duì)象的close方法關(guān)閉數(shù)據(jù)庫,該方法如下所示:
db.close([forceClose], [callback]);
forceClose 參數(shù)值為一個(gè)布爾值,當(dāng)該參數(shù)值為true時(shí),強(qiáng)制關(guān)閉該數(shù)據(jù)庫,關(guān)閉數(shù)據(jù)庫后,不可再使用open方法打開該數(shù)據(jù)庫。
當(dāng)參數(shù)值為false,不強(qiáng)制關(guān)閉該數(shù)據(jù)庫,可以使用該數(shù)據(jù)庫對(duì)象的open方法打開該數(shù)據(jù)庫。
callback 為一個(gè)函數(shù),用于指定關(guān)閉數(shù)據(jù)庫連接操作后返回的回調(diào)函數(shù)。該回調(diào)函數(shù)指定如下所示:
function (err) {}
該回調(diào)函數(shù)有一個(gè)參數(shù)值,表示的是為鏈接數(shù)據(jù)庫失敗時(shí)拋出的錯(cuò)誤對(duì)象。
6、監(jiān)聽數(shù)據(jù)庫的close事件
當(dāng)數(shù)據(jù)庫關(guān)閉時(shí),觸發(fā)數(shù)據(jù)庫的對(duì)象的close事件,可以通過監(jiān)聽數(shù)據(jù)庫對(duì)象的close事件并指定回調(diào)函數(shù)的方法指定當(dāng)關(guān)閉數(shù)據(jù)庫操作執(zhí)行結(jié)束時(shí)需要執(zhí)行的處理,如下代碼:
function(err, db) {}
該回調(diào)有2個(gè)參數(shù),第一個(gè)參數(shù)為關(guān)閉數(shù)據(jù)庫失敗時(shí)拋出的錯(cuò)誤對(duì)象,第二個(gè)參數(shù)值為成功關(guān)閉的數(shù)據(jù)庫對(duì)象,當(dāng)關(guān)閉數(shù)據(jù)庫失敗時(shí)該參數(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" } }
在項(xiàng)目中的根目錄下新建一個(gè) 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ù)庫連接'); } });
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享mongodb關(guān)閉數(shù)據(jù)庫連接的方法內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。