2017-09-26 9 views
1

私は比較的新しいnode.js. mochaフレームワークとmongodbドライバを使用してmongodbへの接続をテストしようとしています。MongoClient.connectはコールバック関数を実行しません

Node.jsのバージョン - 6.11.3

のMongoDBドライバのバージョン - 2.2.31

Mondodbバージョン - 3.4.7

はここに私のjsファイルです:しかし

var should = require("should"); 
var expect = require('chai').expect; 
var cfg = require('../config'); 
var uri = cfg.mongouri; 
var MongoClient = require('mongodb').MongoClient, Logger = 
require('mongodb').Logger; 

Logger.setLevel('debug'); 
describe("mongoconnection", function() { 

describe("fetch data", function() { 

    it("should fetch data from db", function (done) { 
     MongoClient.connect(uri,function(err, db) { 
       if (err) { 
        throw err; 
       } else { 
        console.log("successfully connected to the database"); 
       } 
       db.close(); 
      }); 
     done(); 
    }); 
}); 
}); 

、コード

function(err, db) { 
      if (err) { 
       throw err; 
      } else { 
       console.log("successfully connected to the database"); 
      } 
      db.close(); 
     } 
のこの部分

は実行されず、接続を確立できません。コンソールログも例外も表示されません。

デバッグ情報:

[DEBUG-接続:9352]、 "ポート" HOST:PORT、 "サイズ":5、 "キープアライブ" 1506430786041オプション[{ "ホスト" との接続0を作成します。 true、 "keepAliveInitialDelay":300000、 "noDelay":true、 "connectionTimeout":30000、 "socketTimeout":360000、 "ssl":true、 "ca":null、 "crl":null、 "cert":null、 "rejectUnauthorized" 偽 "promoteLongs":真、 "promoteValues":真、 "promoteBuffers" 偽 "checkServerIdentity":真}] {タイプ: 'デバッグ'、 メッセージ:「オプションに関連0 [{」作成ホスト ":HOST、" ポート ":PORT、" サイズ ":5、" キープアライブ ":真、" keepAliveInitialDelay ":300000、" NODELAY ":真、" のConnectionTimeout ":30000、" socketTimeout ":360000、" SSL」 :true、 "ca":null、 "crl":null、 "cert":null、 "rejectUna className: '接続'、 pid:9352、 日時:1506430786041}

この記事では、次の項目について説明します。

もすでに接続文字列が正しいことを確認し、私は別のアプリ(SOAPUIで実行グルーヴィースクリプト)を経由して、それへの接続を確立することができます。

誰かが、これを事前に感謝し、私を助けてくださいすることができ、私は、この時点で立ち往生しています。

答えて

2

あなたはMongoClient.connectからの非同期コールバックの外モカからdone()を呼び出しています。したがって、dbに接続する前にdone()が呼び出されます。

これにあなたのコードを変更

:助けを

it("should fetch data from db", function (done) { 
    MongoClient.connect(uri,function(err, db) { 
      if (err) { 
       throw err; 
      } else { 
       console.log("successfully connected to the database"); 
      } 
      db.close(); 
      done(); 
    }); 
}); 
+0

感謝を! – penazik

+0

あなたがうまくいけば、それが正しいとマークすることができます:) –

関連する問題