Spe*_*ire 10 mongodb connect-mongo express-session
这是一个使用快速会话存储的简单连接,即使文本是正确的,它仍然会发出这个错误.我很确定与"新MongoStore"对象初始化有关.
var express = require('express'),
expressSession = require('express-session');
var MongoStore = require('connect-mongo/es5')(expressSession);
var sessionStore = new MongoStore({
host: '127.0.0.1',
port: '27017',
db: 'session'
});
var app = express()
.use(expressSession({
secret: 'my secret sign key',
store: sessionStore
}))
.use('/home', function (req, res) {
if (req.session.views) {
req.session.views++;
}
else {
req.session.views = 1;
}
res.end('Total views for you:' + req.session.views);
})
.use('/reset', function(req, res) {
delete req.session.views;
res.end('Cleared all your views');
})
.listen(3000);
Run Code Online (Sandbox Code Playgroud)
alt*_*ium 11
将URL添加到新的 MongoStore()
var sessionStore = new MongoStore({
host: '127.0.0.1',
port: '27017',
db: 'session',
url: 'mongodb://localhost:27017/demo'
});
Run Code Online (Sandbox Code Playgroud)
问题中的代码来自Basarat Ali Syed的Beginning Node.js 一书.
因为您正在使用会话集合所以它应该是这样的
app.use(expressSession({
store: new mongoStore({
mongooseConnection: mongoose.connection,
collection: 'session',
})
}));
Run Code Online (Sandbox Code Playgroud)
小智 1
您需要定义一个数据库连接,然后将其传递给新的 MongoStore。您使用的“db:”参数期望 MongoDB 驱动程序连接,而不是 Mongo 数据库的 url。为此,你应该这样做:
var sessionStore = new MongoStore({ url:'mongodb://localhost:27017/test');
Run Code Online (Sandbox Code Playgroud)
这是一个我知道有效的示例,尽管它使用 Mongoose 而不是 MongoDB 驱动程序。
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');
var sessionStore = new MongoStore({mongooseConnection: mongoose.connection });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11776 次 |
| 最近记录: |