未处理的拒绝 MongoError:无法连接到 MongoDB 中的服务器
Posted
技术标签:
【中文标题】未处理的拒绝 MongoError:无法连接到 MongoDB 中的服务器【英文标题】:Unhandled rejection MongoError: cannot connect to server in MongoDB 【发布时间】:2016-09-09 15:29:34 【问题描述】:我在运行我的 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/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1625:25) 在 Db.indexInformation (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1589:44) 在 ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1082:8) 在 Db.ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1058:44) 在 ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1820:13) 在 Collection.ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1808:44) 在 MongoStore.setAutoRemoveAsync (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:123:40) 在 MongoStore.handleNewConnectionAsync (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:116:18) 在 MongoStore (/home/shaishab/Project/Open-Source/BS-Commerce/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)
在配置文件代码中
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
)
));
谁能帮帮我?
【问题讨论】:
你能检查一下 mongodb 是否正在使用指定的连接字符串运行吗? 从 mongo shell 我可以访问我的数据库 @Astro 【参考方案1】:我终于知道发生错误的地方了!我发布这个答案是因为它可能会帮助其他人。
更新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
这解决了我的问题:)
【讨论】:
【参考方案2】:由于我没有db variable
,我的解决方案是:
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)
));
希望对你有帮助
【讨论】:
以上是关于未处理的拒绝 MongoError:无法连接到 MongoDB 中的服务器的主要内容,如果未能解决你的问题,请参考以下文章
(节点:32032)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):MongoError:身份验证失败
无法连接到 mongolab,出现 MongoError: auth failed
无法连接到 mongolab,出现 MongoError: auth failed