国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

node.js連接MongoDB數據庫的2種方法教程

2019-11-19 16:34:07
字體:
來源:轉載
供稿:網友

前言

MongoDB Node.js驅動程序是被官方所支持的原生node.js驅動程序,他是至今為止最好的實現, 并且得到了MongoDB官方的支持。MongoDB團隊已經采用MongoDB Node.js驅動程序作為標準方法。

npm install mongodb@1.4.3  // MongoDB Node.js驅動程序npm install mongoose@3.8.8 //mongoose模塊

要從Node.js連接MongoDB數據庫我們有兩種方法可選擇:

  • 通過實例化mongodb模塊中提供的mongodbClient類,然后使用這個實例化的對象來創建和管理mongodb連接;
  • 使用字符串進行連接;

1、通過client對象連接到MongoDB

通過實例化一個MongoClient對象連接MongoDB數據庫是最常用也是最佳的方式。

創建MongoClient對象實例的語法:

MongoClient( server, options );

server : 一個serverd對象;
options : 數據庫連接選項;

如上圖所示,MongoClient連接利用了后臺的Server對象。這個對象的功能就是定義了MongoDB驅動程序怎么連接到服務器。

下面,看一個示例:

var MongoClient = require('mongodb').MongoClient,  Server  = require('mongodb').server;// 創建客戶端連接對象var client = new MongoClient( new Server('localhost', 27017, {           socketOpations: { connectTimeoutMS: 500 },           poolSize: 5,           auto_reconnect: true          }, {           numberOfRetries: 3,           retryMilliSeconds: 500          }));// 打開對服務器端MongoDB數據庫的連接client.open(function(err, client) { if ( err ) {  console.log('連接失敗!'); } else {  var db = client.db('blogdb'); // 建立到數據庫blogdb的連接  if ( db ) {   console.log('連接成功');   db.authenticate('username', 'pwd', function(err, result) { // 對用戶數據庫身份進行驗證    if ( err ) {     console.log('數據庫用戶身份驗證失敗');     client.close(); // 關閉對MongoDB的連接     console.log('連接已關閉......');    } else {     console.log('用戶身份驗證通過');     db.logout(function (err, result) { // 關閉對數據庫的連接,即退出數據庫      if ( !err ) {       console.log('退出數據庫出錯');      }      client.close(); // 關閉對MongoDB的連接      console.log( '已關閉連接......' );     });    }   });  } }});

注意: 要注銷數據庫,要使用數據庫對象上的logout()方法。這將關閉到該數據庫上的連接,你不在可以使用Db對象。例如: db.logout();而要關閉到MongoDB的連接,要在客戶端連接上調用close()方法,例如: client.close()

寫入關注

首先,我們在連接數據庫的時候會用到一個關于寫入關注級別的問題,說白了,個人理解的話就是相當于出現問題的一個處理優先順序,你可以選擇寫入數據庫之前是否需要你確認之類的,或者發生錯誤是否忽略之類的等等,如下圖:

寫 入 級 別 說 明
-1 網絡錯誤被忽略
0 寫確認是不必要的
1 請求寫確認
2 寫確認請求跨主服務器和副本集中的一個輔助服務器
majority 寫確認是從副本集的主服務器請求的

用來創建MongoClient連接的Server對象的選項,如下:

用來創建MongoClient連接的數據庫連接選項,如下:

2、通過一個連接字符串連接到MongoDB

這種方式要調用MongoClient類的connect( )方法。connect使用語法如下:

MongoClient.connect(connString, options, callback)

connString字符串的語法如下:

mongodb://username:password@host:port/database?opations

MongoClient連接字符串組件:

選 項 說 明
mongodb:// 指定字符串使用mongodb的連接格式
username 驗證時使用的用戶名。可選
password 身份驗證時使用的密碼。可選
host MongoDB服務器主機名或者域名。它可以是多個host:port組合來連接多個MongoDB服務器。 例如:mongodb://host1:270017, host2://270017, host3:270017/testDB
port 連接MongoDB服務器時使用的端口。默認值是27017
database 要連接的數據庫的名字。 默認為admin
options 連接時所使用的選項的鍵值對。可以在dbOpt和serverOpt參數上指定這些選項

下面,看一個使用連接字符串方法連接MongoDB數據庫的示例:

var MongoClient = require('mongodb').MongoClient;MongoClient.connect('mongodb://mongodb:test@localhost:27017/blogdb', {      db: { w: 1, native_parser: false },      server: {       poolSize: 5,       socketOpations: { connectTimeoutMS: 500 },       auto_reconnect: true      },      replSet: {},      mongos: {}     }, function(err, db) {      if ( err ) {       console.log('連接失敗!');      } else {       console.log('連接成功!');       // 注銷數據庫       db.logout(function(err, result) {        if ( err ) {         console.log('注銷失敗...');        }        db.close(); // 關閉連接        console.log('連接已經關閉!');       });      }});

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丁青县| 长治市| 富阳市| 定襄县| 米易县| 宜春市| 大厂| 丹江口市| 新宾| 珲春市| 盐山县| 巨鹿县| 汶上县| 武隆县| 环江| 德令哈市| 长汀县| 澎湖县| 娄烦县| 长子县| 永泰县| 志丹县| 福清市| 大安市| 宜宾县| 沿河| 古田县| 新绛县| 张家界市| 龙里县| 平昌县| 沁水县| 陕西省| 江油市| 龙海市| 登封市| 原阳县| 永兴县| 宜城市| 平潭县| 浮山县|