最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js連接MongoDB數(shù)據(jù)庫的2種方法教程

 更新時間:2017年05月17日 14:17:53   作者:Dragon_GL  
這幾天一直在學(xué)習(xí)mongdb的基礎(chǔ)知識,跟著網(wǎng)上大神的腳步(代碼)去模擬連接mongodb數(shù)據(jù)庫,下面這篇文章就給大家總結(jié)介紹了node.js連接MongoDB數(shù)據(jù)庫的2種方法教程,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。

前言

MongoDB Node.js驅(qū)動程序是被官方所支持的原生node.js驅(qū)動程序,他是至今為止最好的實現(xiàn), 并且得到了MongoDB官方的支持。MongoDB團隊已經(jīng)采用MongoDB Node.js驅(qū)動程序作為標(biāo)準(zhǔn)方法。

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

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

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

1、通過client對象連接到MongoDB

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

創(chuàng)建MongoClient對象實例的語法:

MongoClient( server, options );

server : 一個serverd對象;
options : 數(shù)據(jù)庫連接選項;

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

下面,看一個示例:

var MongoClient = require('mongodb').MongoClient, 
 Server  = require('mongodb').server;

// 創(chuàng)建客戶端連接對象
var client = new MongoClient( new Server('localhost', 27017, {
           socketOpations: { connectTimeoutMS: 500 },
           poolSize: 5,
           auto_reconnect: true
          }, {
           numberOfRetries: 3,
           retryMilliSeconds: 500
          }));

// 打開對服務(wù)器端MongoDB數(shù)據(jù)庫的連接
client.open(function(err, client) {
 if ( err ) {
  console.log('連接失??!');
 } else {
  var db = client.db('blogdb'); // 建立到數(shù)據(jù)庫blogdb的連接
  if ( db ) {
   console.log('連接成功');
   db.authenticate('username', 'pwd', function(err, result) { // 對用戶數(shù)據(jù)庫身份進行驗證
    if ( err ) {
     console.log('數(shù)據(jù)庫用戶身份驗證失敗');
     client.close(); // 關(guān)閉對MongoDB的連接
     console.log('連接已關(guān)閉......');
    } else {
     console.log('用戶身份驗證通過');
     db.logout(function (err, result) { // 關(guān)閉對數(shù)據(jù)庫的連接,即退出數(shù)據(jù)庫
      if ( !err ) {
       console.log('退出數(shù)據(jù)庫出錯');
      }

      client.close(); // 關(guān)閉對MongoDB的連接
      console.log( '已關(guān)閉連接......' );
     });
    }
   });
  }
 }
});

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

寫入關(guān)注

首先,我們在連接數(shù)據(jù)庫的時候會用到一個關(guān)于寫入關(guān)注級別的問題,說白了,個人理解的話就是相當(dāng)于出現(xiàn)問題的一個處理優(yōu)先順序,你可以選擇寫入數(shù)據(jù)庫之前是否需要你確認(rèn)之類的,或者發(fā)生錯誤是否忽略之類的等等,如下圖:

寫 入 級 別 說 明
-1 網(wǎng)絡(luò)錯誤被忽略
0 寫確認(rèn)是不必要的
1 請求寫確認(rèn)
2 寫確認(rèn)請求跨主服務(wù)器和副本集中的一個輔助服務(wù)器
majority 寫確認(rèn)是從副本集的主服務(wù)器請求的

用來創(chuàng)建MongoClient連接的Server對象的選項,如下:

用來創(chuàng)建MongoClient連接的數(shù)據(jù)庫連接選項,如下:

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

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

MongoClient.connect(connString, options, callback)

connString字符串的語法如下:

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

MongoClient連接字符串組件:

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

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

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('連接成功!');
       // 注銷數(shù)據(jù)庫
       db.logout(function(err, result) {
        if ( err ) {
         console.log('注銷失敗...');
        }

        db.close(); // 關(guān)閉連接
        console.log('連接已經(jīng)關(guān)閉!');
       });
      }

});

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 使用Node.js寫一個代碼生成器的方法步驟

    使用Node.js寫一個代碼生成器的方法步驟

    這篇文章主要介紹了使用 Node.js 寫一個代碼生成器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 初識Node.js

    初識Node.js

    本文給大家介紹的是node.js的初體驗,從最簡單的內(nèi)容開始,慢慢的深入分析node.js。并附上一則很不錯的文章《7天學(xué)會nodeJS》更加詳細(xì)的向我們展示了node.js的學(xué)習(xí)步驟。
    2015-03-03
  • 利用node.js如何創(chuàng)建子進程詳解

    利用node.js如何創(chuàng)建子進程詳解

    之前看多進程這一章節(jié)時發(fā)現(xiàn)這塊東西挺多,寫Process模塊的時候也有提到,今天下午午休醒來靜下心來好好的看了一遍,發(fā)現(xiàn)也不是太難理解。所以下面這篇文章主要給大家介紹了關(guān)于利用node.js如何創(chuàng)建子進程的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12
  • 安裝node.js和npm的一些常見報錯

    安裝node.js和npm的一些常見報錯

    NVM(Node?Version?Manager)是一個用于在同一機器上同時安裝并管理多個Node.js版本的工具,這篇文章主要給大家介紹了關(guān)于安裝node.js和npm的一些常見報錯,需要的朋友可以參考下
    2023-06-06
  • 輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng)

    輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng)

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng),我們接著改造服務(wù)器,讓請求處理程序能夠返回一些有意義的信息,需要的朋友可以參考下
    2014-12-12
  • 詳解Node.js服務(wù)器靜態(tài)資源處理

    詳解Node.js服務(wù)器靜態(tài)資源處理

    靜態(tài)資源服務(wù)器指的是不會被服務(wù)器的動態(tài)運行所改變或者生成的文件,本文主要為大家詳細(xì)介紹了Node.js服務(wù)器靜態(tài)資源處理的相關(guān)知識,需要的可以了解下
    2024-04-04
  • Nodejs Playwright 2Captcha 驗證碼識別實現(xiàn)自動登陸功能

    Nodejs Playwright 2Captcha 驗證碼識別實現(xiàn)自動登陸功能

    日常工作當(dāng)中,為了提高工作效率,我們可能會寫腳本來自動執(zhí)行任務(wù),有些網(wǎng)站因為需要用戶登陸,所以腳本的自動登陸功能必不可少,這篇文章主要介紹了Nodejs Playwright 2Captcha 驗證碼識別實現(xiàn)自動登陸功能,需要的朋友可以參考下
    2024-05-05
  • Node.js使用Angular簡單示例

    Node.js使用Angular簡單示例

    這篇文章主要介紹了Node.js使用Angular簡單示例,如何在Node.js項目中引入AngularJS,這次提供一個非常簡單的示例,演示AngularJS里的指令、數(shù)據(jù)綁定、服務(wù)等內(nèi)容。感興趣的小伙伴們可以參考一下
    2018-05-05
  • Node.js完整實現(xiàn)博客系統(tǒng)詳解

    Node.js完整實現(xiàn)博客系統(tǒng)詳解

    這篇文章主要介紹了Node.js完整實現(xiàn)一個博客系統(tǒng)的流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Windows下安裝 node 的版本控制工具 nvm

    Windows下安裝 node 的版本控制工具 nvm

    這篇文章主要介紹了Windows下安裝 node 的版本控制工具 nvm的相關(guān)資料,需要的朋友可以參考下
    2020-02-02

最新評論

年辖:市辖区| 许昌县| 鄄城县| 绥阳县| 兴义市| 黄骅市| 囊谦县| 灵丘县| 文水县| 宁安市| 通辽市| 绥化市| 岐山县| 敦化市| 宿松县| 泰来县| 乐昌市| 防城港市| 临夏市| 天柱县| 东宁县| 富阳市| 临猗县| 琼结县| 迭部县| 桦川县| 定西市| 铜川市| 上思县| 阜康市| 大悟县| 若尔盖县| 弋阳县| 怀仁县| 临泽县| 从江县| 江城| 宿松县| 新巴尔虎左旗| 蒲江县| 武陟县|