>  기사  >  웹 프론트엔드  >  node.js를 MongoDB 데이터베이스에 연결하는 2가지 방법

node.js를 MongoDB 데이터베이스에 연결하는 2가지 방법

不言
不言원래의
2018-06-30 13:57:501311검색

지난 며칠 동안 mongodb 데이터베이스 연결을 시뮬레이션하기 위해 온라인 마스터의 발자취(코드)를 따라가면서 mongdb의 기본 지식을 배웠습니다. 다음 기사에서는 node.js 연결을 위한 2가지 방법 튜토리얼을 요약하고 소개합니다. MongoDB 데이터베이스에 대한 기사는 매우 상세하며, 필요한 친구들이 참고할 수 있도록 아래에서 살펴보겠습니다.

머리말

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 클래스를 인스턴스화한 다음 이 인스턴스화된 객체를 사용하여 생성 및

  • 연결하려면 문자열을 사용하세요.

1. MongoDB 데이터베이스에 연결하는 가장 일반적이고 가장 좋은 방법은 MongoClient 개체를 인스턴스화하는 것입니다.

MongoClient 객체 인스턴스를 생성하기 위한 구문:

MongoClient( server, options );

server: serverd 객체;

options: 데이터베이스 연결 옵션; 배경 서버 개체입니다. 이 개체의 기능은 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 ().

Writing attention

먼저 데이터베이스에 접속할 때, Writing Attention 수준에 대한 질문을 사용하게 되는데, 직설적으로 말하면 문제에 대한 처리 우선순위와 동일하다고 개인적으로 이해하고 있습니다. 아래와 같이 데이터베이스에 들어가기 전에 확인해야 하는지, 아니면 오류를 무시해야 하는지 등을 쓰도록 선택할 수 있습니다. 오류는 무시됩니다 logout()方法。这将关闭到该数据库上的连接,你不在可以使用Db对象。例如: db.logout();而要关闭到MongoDB的连接,要在客户端连接上调用close()方法,例如: client.close()

写入关注

首先,我们在连接数据库的时候会用到一个关于写入关注级别的问题,说白了,个人理解的话就是相当于出现问题的一个处理优先顺序,你可以选择写入数据库之前是否需要你确认之类的,或者发生错误是否忽略之类的等等,如下图:

写 入 级 别 说 明
-1 网络错误被忽略
0 写确认是不必要的
1 请求写确认
2 写确认请求跨主服务器和副本集中的一个辅助服务器
majority 写确认是从副本集的主服务器请求的

用来创建MongoClient连接的Server对象的选项,如下:

用来创建MongoClient连接的数据库连接选项,如下:

2、通过一个连接字符串连接到MongoDB

这种方式要调用MongoClient类的connect( )0

쓰기 승인이 필요하지 않습니다

1쓰기 승인 요청

2

쓰기 승인 요청은 복제본 세트의 기본 서버와 하나의 보조 서버에 걸쳐 있습니다.

majority 쓰기 승인은 복제본 세트의 마스터 서버에서 요청됩니다. 다음과 같이 MongoClient 연결을 위한 서버 객체를 생성하는 데 사용되는 옵션: MongoClient 연결을 생성하는 데 사용되는 데이터베이스 연결 옵션은 다음과 같습니다. 2. 연결 문자열을 통해 MongoDB에 연결
MongoClient.connect(connString, options, callback)
connString 문자열 구문은 다음과 같습니다.
mongodb://username:password@host:port/database?opations
MongoClient 연결 문자열 구성 요소: Options 설명
이것 메서드를 사용하려면 MongoClient 클래스 connect( ) 메서드를 호출해야 합니다. connect 구문은 다음과 같습니다.
🎜mongodb://🎜🎜mongodb 연결 형식을 사용할 문자열을 지정하세요. 🎜🎜🎜🎜username🎜🎜인증에 사용되는 사용자 이름입니다. 선택사항🎜🎜🎜🎜password🎜🎜인증에 사용할 비밀번호입니다. 선택사항🎜🎜🎜🎜host🎜🎜MongoDB 서버 호스트 이름 또는 도메인 이름. 여러 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('连接已经关闭!');
       });
      }

});

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

使用Nodejs连接mongodb数据库的实现

node-mysql中防止SQL注入的方法

위 내용은 node.js를 MongoDB 데이터베이스에 연결하는 2가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.