我在使用猫鼬方面遇到了困难。我有这个小代码,它连接到mongodb服务器。
var mongoose = require('mongoose');
var connection = mongoose.connect('mongodb://localhost:27017/my_db', function (err) {
console.log("on connect callback called");
if (err) throw err;
});
console.log("connect called");
不幸的是,在运行此代码时,我在控制台中获得了connect called
,但on connect callback called
从未被调用。
我的mongodb控制台显示我运行此代码时有一些连接
2018-02-09T11:42:15.422+0530 I NETWORK [initandlisten] waiting for connections on port 27017
2018-02-09T11:42:21.968+0530 I NETWORK [listener] connection accepted from 127.0.0.1:56156 #1 (1 connection now open)
2018-02-09T11:42:21.970+0530 I NETWORK [listener] connection accepted from 127.0.0.1:56158 #2 (2 connections now open)
2018-02-09T11:42:21.971+0530 I NETWORK [listener] connection accepted from 127.0.0.1:56160 #3 (3 connections now open)
2018-02-09T11:42:21.971+0530 I NETWORK [listener] connection accepted from 127.0.0.1:56162 #4 (4 connections now open)
2018-02-09T11:42:21.971+0530 I NETWORK [listener] connection accepted from 127.0.0.1:56164 #5 (5 connections now open)
请帮忙!
答案 0 :(得分:1)
mongoose.connect
的第二个参数不是回调,它是一个描述poolSize
,autoIndex
,user
,pass
等的选项对象。在连接发生后调用一次,你应该使用once
上的方法open
:
mongoose.connect('mongodb://localhost:27017/my_db', {poolSize: 20});
var db = mongoose.connection;
db.once('open', function() { console.log('Successfully connected');});
db.on('error', console.error.bind(console, 'conn error:'));
OP发现版本兼容性问题。将mongoose
版本升级为5.0.4
后,就可以了。