未处理的拒绝MongoError:无法连接到MongoDB中的服务器
我得到了Unhandled rejection MongoError: cannot connect to server
运行我的meanjs项目时Unhandled rejection MongoError: cannot connect to server
。
以前运行良好,但是当更新nodejs 5.11.1
, mongodb 3.2.6
, "mongoose": "^4.4.16"
和"connect-mongo": "^1.1.0",
那么这个错误就得到了。
未处理的拒绝MongoError:无法连接到服务器上的Collection.listIndexes(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1750:11)在indexInformation(/ home / shaishab /项目/开源/ BS-Commerce / node_modules / mongodb / lib / db.js:1625:25)在Db.indexInformation(/ home / shaishab / Project / Open-Source / BS-Commerce / node_modules / mongodb / lib / (/ home / shaishab / db.js:1589:44)在ensureIndex(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1082:8)在Db.ensureIndex项目/开源/ BS-Commerce / node_modules / mongodb / lib / db.js:1058:44)在MongoStore.setAutoRemoveAsync(/ home / shaishab / js:1820:13) Project / Open-Source / BS-Commerce / node_modules / connect-mongo / src / index.js:123:40)at MongoStore.handleNewConnectio 在MongoStore(/ home / shaishab / Project / Open-Source / BS-Commerce)的nAsync(/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:116:18) /node_modules/connect-mongo/src/index.js:95:26)在module.exports(/home/shaishab/Project/Open-Source/BS-Commerce/config/express.js:101:10)在对象。 (/home/shaishab/Project/Open-Source/BS-Commerce/server.js:31:38)在Module._compile(module.js:413:34)在Object.Module._extensions..js(module.js :422:10)
在configuration文件代码
var session = require('express-session'), MongoStore = require('connect-mongo')(session), mongoose = require('mongoose'); var db = mongoose.connect('dbUrl'); app.use(session({ saveUninitialized: true, resave: true, secret: config.sessionSecret, store: new MongoStore({ db: db.connection.db, collection: config.sessionCollection }) }));
谁能帮我 ?
最后我得到了错误发生的地方! 我发布这个答案,因为它可能会帮助别人。
更新mongoose
和connect-mongo
版本时出现问题。
需要更新:
MongoStore = require('connect-mongo')(session)
和
app.use(session({ saveUninitialized: true, resave: true, secret: config.sessionSecret, store: new MongoStore({ mongooseConnection: db.connection, collection: config.sessionCollection }) }));
主要的问题是在MongoStore({db: db.connection.db
而不是使用
db: db.connection.db
现在使用
mongooseConnection: db.connection
这解决了我的问题:)
由于我没有一个db variable
,我的解决scheme是:
var mongoStore = require('connect-mongo')(session); var mongoose = require('mongoose'); const connection = mongoose.createConnection('mongodb://localhost/chester'); app.use(session({ secret: config.secrets.session, resave: true, saveUninitialized: true, store: new mongoStore({mongooseConnection: connection}) }));
希望能帮助到你