2016-09-22 13 views
0

以下は私が使用しているコードです。レポートを取得しようとするとハングします。エラーメッセージなどはありません。私は何が間違っているのか分かりません。シングルマングースDB接続を確立するときにコードがハングアップ

var mongoose = require("mongoose"); 
mongoose.createConnection('mongodb://localhost:27017/campaignDb'); 
var kochavaRequestModel = require("../models/kochava_request_details") 
// var download = require("./request_status") 
var Client = require('node-rest-client').Client; 
var client = new Client(); 



function retrieveReport(callback) { 
    kochavaRequestModel.findOne({}, {}, { sort: { 'request_time' : -1 } }, function(err, report) { 
     if (err) { 
      callback(err, null); 
     } else { 
      callback(null, report); 
     } 
     }); 
    }; 


    queueReport = function(appId){ 
     retrieveReport(function(err, report) { 
      if (err) { 
      console.log(err); 
      } 
      startTime = report.request_time.getTime()/1000 | 0 
      endTime = new Date(); 
      endTime = endTime.getTime()/1000 | 0; 
      startTime = startTime + ''; 
      endTime = endTime + ''; 
      args = setArgs(startTime, endTime, appId) 
      runReport(args) 
     }); 
    } 
+0

マングースにエラーハンドラを追加します。それ以外に、私はqueueReport、 –

+0

Okをどう使っているのか分かりません。だから、 'mongoose.createConnection()'の代わりに 'mongoose.connect()'を使いました。理由は分かりません。 – Keon

答えて

0

mongoose.connect()代わりのmongoose.createConnection()を使用し、それが働きました。理由は分かりません。 createConnectionは最高の異なる読み取り/書き込み設定での複数の接続のために使用されているよう

[編集]詳細情報.....

この更に見た後に見えます。私はデフォルトの接続だけを望んでいたので、createConnectionの引数で指定しておきます。

// single server 
var uri = 'mongodb://localhost/test'; 
mongoose.createConnection(uri, { server: { poolSize: 4 }}); 

// for a replica set 
mongoose.createConnection(uri, { replset: { poolSize: 4 }}); 

// passing the option in the URI works with single or replica sets 
var uri = 'mongodb://localhost/test?poolSize=4'; 
mongoose.createConnection(uri); 

Docs

+0

'mongoose.connect()'は、一度接続が確立されると実行されるコマンドの内部キューを設定すると思います。 'mongoose.createConnection()'を使用することで、その責任が開発者になります(基本的に、データベースコマンドを発行する前に接続が確立されるのを待たなければなりません)。 – robertklep

関連する問題