【发布时间】:2014-10-07 15:56:26
【问题描述】:
我们正在使用 mongoose 连接到 MongoDB。最初创建了一个包含 100 个连接的池,并使用 mongoose 方法 useDb
连接到其他一些数据库下面是代码sn-p
var url = require("url");
var connectRoute = require('connect-route');
var connect = require('connect'),
app = connect.createServer();
var mongoose = require('mongoose');
var conn = mongoose.createConnection('mongodb://localhost:10040/first', {server: {poolSize: 100}});
conn.on('error', console.error.bind(console, 'connection error:'));
var Schema = mongoose.Schema;
var MySchema = new Schema({
user: String,
pwd: String, roles: []
},
{strict: false}
);
app.use(connectRoute(function (router){
router.get('/get', function(req,res){
var db2 = conn.useDb('second_DB');
var data = db2.model('', MySchema, 'coll');
data.update({name: "Janu"}, {$set: {"name": "test"}}, {upsert: true} , function (err, data,log) {
//console.log(a.data.data );
res.end(JSON.stringify(log.connectionId));
});
});
}));
app.listen(3000);
console.log('info','Connect server listening on port 3000 ' );
即使 Poolsize 设置为 100 ,当超过 10 个并发请求时抛出警告为
(node) 警告:检测到可能的 EventEmitter 内存泄漏。增加了 11 位听众。使用emitter.setMaxListeners() 增加限制。
MongoDB 版本 - 2.6.4 猫鼬版 - 3.8.12
谁能帮忙解释为什么会出现这个警告??
【问题讨论】:
-
使用 useDb 方法时会抛出警告。除此之外,没有其他方法会引发警告。当我在上面的代码 sn-p 中注释行 var db2 = conn.useDb('second_DB') 时没有收到警告。
-
您找到解决方案了吗?