Dan*_*ina 0 session node.js express express-session
我知道这个问题已被问过好几次了.但是,我读过的答案都没有解决我的问题.
其中许多已经过时用于快递v4,因为快递会议目前是一个单独的模块.那些问题/答案在这里:
其他问题已更新,但是给出的解决方案并不能解决我的问题.那些问题/答案在这里:
大多数解决方案是配置应用程序时的中间件序列.我尝试了不同的选项,但我找不到正确的方法.也许就是这样.
在其他解决方案中,有人说session中间件无法被调用,因为如果是,req.session则会被定义.我在之前使用过中间件app.use(session({...})),并检查两者是否被调用.
我也在这个问题中发现有人说他req.session在商店断开连接时未定义.到目前为止我正在使用默认商店.这可能是问题吗?
我收到这个错误:
TypeError:无法读取undefined的属性'destroy'
当我尝试使用req.session.destroy()login.js 注销会话时它会中断(请参阅下面的代码)
server.js
const express = require('express');
const session = require('express-session');
const mongo = require('mongodb');
const passport = require('passport');
const path = require('path');
const routes = require('./app/routes');
const login = require('./app/routes/login.js');
const app = express();
app.use(session({
secret: 'key',
resave: false,
saveUninitialized: true,
}));
app.use(passport.initialize());
app.use(passport.session());
app.use('/public', express.static(path.normalize('./public')));
app.use(routes);
app.use(login);
app.set('view engine', 'pug');
const MongoClient = mongo.MongoClient;
MongoClient.connect('mongodb://localhost:27017/myapp')
.then((db) => {
// Link the database through the app. It will be available in the req.app object
app.db = db;
console.log('App listening on port ' + process.env.PORT);
app.listen(process.env.PORT);
})
.catch((err) => {
console.log('There was an error connecting to the database.');
console.log(err);
});
module.exports = app; // For testing
Run Code Online (Sandbox Code Playgroud)
login.js
const express = require('express');
const passport = require('passport');
const router = new express.Router();
// Other login logic here
router.get('/logout', (res, req) => {
req.session.destroy((err) => {
req.redirect('/');
});
});
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
您在处理程序中交换了req和res参数:
router.get('/logout', (res, req) => { ... })
Run Code Online (Sandbox Code Playgroud)
那应该是另一种方式:
router.get('/logout', (req, res) => { ... })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2529 次 |
| 最近记录: |