建立单个mongoose数据库连接时代码挂起

时间:2016-09-22 20:24:42

标签: javascript node.js mongodb

以下是我正在使用的代码,当我尝试检索报告时,它会挂起。没有错误消息或任何东西。我不确定我做错了什么。

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)
        });
    }

1 个答案:

答案 0 :(得分:0)

使用mongoose.connect()代替mongoose.createConnection()并且它有效。不知道为什么。

[edit]更多信息.....

在进一步研究之后,看起来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