gpt4 book ai didi

mongodb - Cloud9 上的 NodeJS、ExpressJS 和 PassportJS session 连接到 Appfog Mongo

转载 作者:可可西里 更新时间:2023-11-01 09:17:21 24 4
gpt4 key购买 nike

我很难在 Appfog 上与 MongoDB 建立任何类型的连接以进行 session 存储工作。我目前正在使用 PassportJS 和 Mongoose 运行 Node Express。我在网上学习了大量示例和教程,并尝试了一些 ODM 映射器。

我必须承认,我一直在努力建立任何形式的联系,更不用说抽象 session 了。

我试过 SO 示例 herehere没有成功。每次我尝试连接以下代码时:-

var env = process.env.NODE_ENV || 'development',
config = require('./config/config')[env],
auth = require('./config/middlewares/authorization'),
mongoose = require('mongoose');

// Bootstrap db connection
mongoose.connect(config.db);

我得到一个:-

Error: Error setting TTL index on collection : sessions
at module.exports._get_collection (/var/lib/stickshift/514a22705973cafc85000110/app-root/data/447240/node_modules/connect-mongo/lib/connect-mongo.js:137:23)
at Db.ensureIndex (/var/lib/stickshift/514a22705973cafc85000110/app-root/data/447240/node_modules/mongodb/lib/mongodb/db.js:1227:28)
at Db.indexInformation (/var/lib/stickshift/514a22705973cafc85000110/app-root/data/447240/node_modules/mongodb/lib/mongodb/db.js:1371:30)

任何人都可以提供任何可能的指导或帮助来完成这项工作吗?

请询问您是否需要在此处进一步转储代码以帮助解决问题。

感谢帮助。

最佳答案

我有同样的问题,它发生是因为我使用部分连接的数据库来初始化 express.session()。

这是我最初拥有的:

mongoose.connect(dbPath);
...
app.configure(function() {
...
app.use(express.session({
secret : secret,
store: new MongoStore({ db: mongoose.connection.db })
}));
...
});

“new MongoStore()”调用发生在 mongoose.connect() 完成之前,因此它使用尚未连接的数据库为“ session ”设置 TTL 并失败。我切换到“new MongoStore({ url: dbPath })”,这解决了问题,但可能导致 2 个不同的数据库连接。

关于mongodb - Cloud9 上的 NodeJS、ExpressJS 和 PassportJS session 连接到 Appfog Mongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15748644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com