2017-01-15 19 views
0

私はnode.jsでアプリケーションを実行していますが、mongodbを接続するためにこの構文が見つかりました。私は他の方法があることを知っていますが、誰かが私にこのことを説明してください。何をここに接続していますか?このコールバック引数はどのように機能しますか?アサーションは何のために使われますか?ここで何をMongoDBデータベースに接続

var MongoClient = require('mongodb').MongoClient, 
    assert = require('assert'); 

var url = 'mongodb://localhost:27017/myproject'; 

var mongoClient = new function() { 

    this.connect= function(callback) { 
     MongoClient.connect(url, function (err, db) { 
      console.log("Connected successfully to server"); 
      callback(err, db); 
     }); 
    } 
} 

module.exports = mongoClient; 

答えて

0

を接続していますか?

このコードを実行する前に、MongoDBサーバーインスタンスを実行します。サーバーはポート(通常はポート27017)上で実行されます。あなたが接続しようとしているのは、node.jsプログラム経由のサーバーインスタンスです。

このコールバック引数はどのように機能しますか?

MongoClient.connect(url, function(err,db){});

この関数は、データベースでmyprojectにポート27017でのMongoDBサーバーに接続しようとします。接続の結果をその関数の2つの引数に格納します。正常に接続されている場合はエラー引数にnullを格納し、エラーのスタックトレースを格納します。接続に成功すると、2番目の引数にDBインスタンスが送信されます。 コールバック関数は、同じ結果を呼び出し関数に返します。

アサルトはどのようなものですか?

ノード内のモジュールです。何それはあなたがMongoDBのライブラリを必要としている。このラインでは、美しいNode.JS documentation about it

+0

ありがとうSaras。私は最後のコールバック(エラー、DB)を理解していない。したがって、エラーがなければ、この関数はMongoClientからdbインスタンスを取り出し、その結果を呼び出し関数に返します。それはmongoClientでしょう。そうですか? –

+0

はい、そうです。だから 'mongoclient'には両方の結果があります。コールバックの仕組みを明確に理解するには、この[動画](https://www.youtube.com/watch?v=pTbSfCT42_M)をご覧ください –

0
var MongoClient = require('mongodb').MongoClient, 

にここに与えられているために使用されています。

var url = 'mongodb://localhost:27017/myproject'; 

これはあなたが接続するURLです。フォーマットはMongoDBのです:// host_address:あなたはこのようモンゴに接続し、他のファイルからポート/ db_nameの

//Creating a function with the name mongoClient and exporting it. 
var mongoClient = new function() { 
    //Creating another called connect inside the mongoClient function. Which you will call from other place to connect to the db. 
    this.connect= function(callback) { 
    //Here the mongo client library actually connecting to mongo server, and through the callback function it return err and db object. if the connection is successful only then you should return db. 
    MongoClient.connect(url, function (err, db) { 
     if(!err){ 
      console.log("Connected successfully to server"); 
      //Here the call back function of the function which call the connect function getting called. 
      callback(err, db); 
     }else{ 
      throw (err); 
     } 
    }); 
    } 
} 
//here you are exporting the mongoClient function. 
module.exports = mongoClient; 

var mongoClient = require('relative path to this file'); 
mongoClient.connect(function(err, db){ 
    //now db is the connection object. 
    console.log(db); 
}); 
関連する問題