在快递3中,我使用connect-mongo
作为会话商店。
var mongoStore = require('connect-mongo')(express);
但是在我转到表达4之后它没有用。我收到了这个错误:
Error: Most middleware (like session) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
我看到连接已经从快递4中删除了。我怎样才能继续使用这个或者是否有任何好的库我可以用于快递4.谢谢。
答案 0 :(得分:16)
您现在需要单独安装快速会话程序包。它可以在https://github.com/expressjs/session
找到使用以下命令启动并运行:
npm install --save express-session cookie-parser
然后在你的server.js文件中:
var express = require('express'),
cookieParser = require('cookie-parser'),
expressSession = require('express-session'),
MongoStore = require('connect-mongo')(expressSession),
app = express();
app.use(cookieParser());
app.use(expressSession({
secret: 'secret',
store: new MongoStore(),
resave: false,
saveUninitialized: true
}));
享受
答案 1 :(得分:1)
您仍然可以在快递4中使用connect-mongo。来自自述文件的示例:
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
app.use(session({
secret: settings.cookie_secret,
store: new MongoStore({
db : settings.db,
})
}));
答案 2 :(得分:0)
答案 3 :(得分:-1)
检查此模块和示例代码。
https://www.npmjs.org/package/express-sessions
var mongoose = require('mongoose');
mongoose.connect();
app.use(express.session({
secret: 'a4f8071f-c873-4447-8ee2',
cookie: { maxAge: 2628000000 },
store: new (require('express-sessions'))({
storage: 'mongodb',
instance: mongoose, // optional
host: 'localhost', // optional
port: 27017, // optional
db: 'test', // optional
collection: 'sessions', // optional
expire: 86400 // optional
})
}));