【发布时间】:2014-07-28 19:16:55
【问题描述】:
我不再使用默认连接,而是使用明确定义的连接。
我的代码正在运行,只是跟踪我的 mongo 连接状态的事件处理程序都没有触发。
我使用默认猫鼬连接时触发的事件。 (mongoose.connect)。
var mongoose = require('mongoose'),
logger = require('../logger'),
config = require('../config');
mongoose.connection.on('connecting', function(){
logger.info("trying to establish a connection to mongo");
});
mongoose.connection.on('connected', function() {
logger.info("connection established successfully");
});
mongoose.connection.on('error', function(err) {
logger.error('connection to mongo failed ' + err);
});
mongoose.connection.on('disconnected', function() {
logger.log('mongo db connection closed');
})
var gracefulExit = function() {
db.close(function(){
logger.log("mongoose connection with db " + server + 'is closing');
process.exit(0);
});
};
process.on('SIGNT', gracefulExit).on('SIGTERM', gracefulExit);
var db = mongoose.createConnection(config.get('DB_URL'));
module.exports = db;
代码的问题是
- 没有事件处理程序正在触发。
- 甚至 SIGNT 和 SIGTERM 上的进程事件也没有触发。
我也试过
var db = mongoose.createConnection(config.get('DB_URL'));
db.on('connecting', function(){
logger.info("trying to establish a connection to mongo");
});
但这也不会触发。
【问题讨论】:
-
你试过用
mongoose.connect代替mongoose.createConnection吗? -
我不想使用 monoose.connect 因为使用“默认”连接对我来说似乎是一种不好的做法。我想使用明确定义的连接而不是默认连接。
-
好的,但这更像是标准做法。
-
您使用
db.on的第二次尝试对我来说适用于“打开”、“连接”和“断开连接”事件。 -
哈..是的,它不适用于连接..但适用于连接。但是为什么进程退出事件没有调用我的关闭方法?