Maison > interface Web > js tutoriel > le corps du texte

Deux façons de connecter node.js à la base de données MongoDB

不言
Libérer: 2018-06-30 13:57:50
original
1333 Les gens l'ont consulté

J'ai appris les connaissances de base de mongdb ces jours-ci, en suivant les traces (code) des maîtres en ligne pour simuler la connexion à la base de données mongodb. L'article suivant résume et présente les deux didacticiels de méthode permettant à node.js de se connecter à la base de données mongodb. Base de données MongoDB. L'introduction dans l'article est très détaillée. Les amis qui en ont besoin peuvent s'y référer.

Avant-propos

Le pilote MongoDB Node.js est le pilote node.js natif officiellement pris en charge. C'est la meilleure à ce jour. et est officiellement pris en charge par MongoDB. L'équipe MongoDB a adopté le pilote MongoDB Node.js comme approche standard.

npm install mongodb@1.4.3  // MongoDB Node.js驱动程序
npm install mongoose@3.8.8 //mongoose模块
Copier après la connexion

Pour vous connecter à la base de données MongoDB depuis Node.js, nous avons le choix entre deux méthodes :

  • En instanciant la classe mongodbClient fournie dans le module mongodb, puis en utilisant cet objet instancié pour créer et gérer les connexions mongodb

  • Utiliser des chaînes pour se connecter <🎜 ; >

1. Connectez-vous à MongoDB via l'objet client

Il est préférable de se connecter à la base de données MongoDB en instancier un objet MongoClient Couramment utilisé est également le meilleur moyen.

Syntaxe de création d'une instance d'objet MongoClient :

MongoClient( server, options );
Copier après la connexion

server : un objet serverd

options : Options de connexion à la base de données ;

Comme le montre la figure ci-dessus, la connexion MongoClient utilise l'objet Server en arrière-plan. La fonction de cet objet est de définir comment le pilote MongoDB se connecte au serveur.

Ci-dessous, regardez un exemple :

var MongoClient = require(&#39;mongodb&#39;).MongoClient, 
 Server  = require(&#39;mongodb&#39;).server;

// 创建客户端连接对象
var client = new MongoClient( new Server(&#39;localhost&#39;, 27017, {
           socketOpations: { connectTimeoutMS: 500 },
           poolSize: 5,
           auto_reconnect: true
          }, {
           numberOfRetries: 3,
           retryMilliSeconds: 500
          }));

// 打开对服务器端MongoDB数据库的连接
client.open(function(err, client) {
 if ( err ) {
  console.log(&#39;连接失败!&#39;);
 } else {
  var db = client.db(&#39;blogdb&#39;); // 建立到数据库blogdb的连接
  if ( db ) {
   console.log(&#39;连接成功&#39;);
   db.authenticate(&#39;username&#39;, &#39;pwd&#39;, function(err, result) { // 对用户数据库身份进行验证
    if ( err ) {
     console.log(&#39;数据库用户身份验证失败&#39;);
     client.close(); // 关闭对MongoDB的连接
     console.log(&#39;连接已关闭......&#39;);
    } else {
     console.log(&#39;用户身份验证通过&#39;);
     db.logout(function (err, result) { // 关闭对数据库的连接,即退出数据库
      if ( !err ) {
       console.log(&#39;退出数据库出错&#39;);
      }

      client.close(); // 关闭对MongoDB的连接
      console.log( &#39;已关闭连接......&#39; );
     });
    }
   });
  }
 }
});
Copier après la connexion

Remarque : Pour vous déconnecter de la base de données, utilisez la méthode sur l'objet de la base de données. Cela fermera la connexion à la base de données et vous ne pourrez plus utiliser l'objet Db. Par exemple : logout()Pour fermer la connexion à MongoDB, appelez la méthode db.logout(); sur la connexion client, par exemple : close() . client.close()

Attention à l'écriture

Tout d'abord, lorsque nous nous connecterons à la base de données, nous utiliserons une question sur le niveau d'attention à l'écriture Pour parler franchement, ma compréhension personnelle. est que cela équivaut à Un ordre de priorité pour gérer les problèmes lorsque des problèmes surviennent. Vous pouvez choisir si vous devez confirmer avant d'écrire dans la base de données, ou si vous souhaitez ignorer une erreur, etc., comme indiqué ci-dessous :

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

Utiliser Les options de création d'un objet Serveur pour une connexion MongoClient sont les suivantes :

Les options de connexion à la base de données pour créer un Les connexions MongoClient sont les suivantes :

2. Connectez-vous à MongoDB via une chaîne de connexion<🎜. >De cette façon, vous devez appeler la classe MongoClient

Méthode. La syntaxe de connect est la suivante :

connect( )

MongoClient.connect(connString, options, callback)
Copier après la connexion

La syntaxe de la chaîne connString est la suivante :

mongodb://username:password@host:port/database?opations
Copier après la connexion

Composant de chaîne de connexion MongoClient :

下面,看一个使用连接字符串方法连接MongoDB数据库的示例:

var MongoClient = require(&#39;mongodb&#39;).MongoClient;
MongoClient.connect(&#39;mongodb://mongodb:test@localhost:27017/blogdb&#39;, {
      db: { w: 1, native_parser: false },
      server: {
       poolSize: 5,
       socketOpations: { connectTimeoutMS: 500 },
       auto_reconnect: true
      },
      replSet: {},
      mongos: {}

     }, function(err, db) {
      if ( err ) {
       console.log(&#39;连接失败!&#39;);
      } else {
       console.log(&#39;连接成功!&#39;);
       // 注销数据库
       db.logout(function(err, result) {
        if ( err ) {
         console.log(&#39;注销失败...&#39;);
        }

        db.close(); // 关闭连接
        console.log(&#39;连接已经关闭!&#39;);
       });
      }

});
Copier après la connexion

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

相关推荐:

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!