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

Code hanging when establishing single mongoose db connection

本文关键字:代码 挂起 时代 数据库连接 单个猫 建立      更新时间:2023-09-26

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

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

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

文档