对单独的路由文件使用快速会话

时间:2020-05-19 20:48:09

标签: javascript node.js express express-session

我已成功将express-session用于req.session的CRUD属性。当我将路由移动到单独的路由器文件中时,req.session是未定义的。例如...

const express = require('express');
const myRouter = require('./routers/mainroutes');
const session = require("express-session");
require('./db/mongoose');
const mongoose = require('mongoose');
const MongoStore = require('connect-mongo')(session);

const app = express();
const port = process.env.PORT || 3000;

app.use(myRouter);

app.use(session({
  secret: 'thisisitNJDG',
  resave: false,
  cookie: { path: '/', httpOnly: true, secure: false, maxAge: 3600000 },
  saveUninitialized: false,
  store: new MongoStore({ mongooseConnection: mongoose.connection })
}));

app.get('/test1', (req, res) => {
  req.session.testproperty = 'foo';
  console.log(req.session);
  res.send(req.session);
});

app.listen(port, () => {
  console.log('Server is up on port ', port);
});

localhost:3000 / test1正常工作。我可以设置req.session.testproperty等。但是,localhost:3000 / test2尝试在未定义的(req.session)上设置属性(testproperty)失败。

//mainroutes.js
const express = require('express');

const router = new express.Router();

router.get("/test2", async (req, res) => {
  req.session.testproperty = 'bar';
  console.log(req.session);
  res.send(req.session);
});

module.exports = router;

我尝试研究了几个小时,然后才发现问题,但找不到答案。预先感谢

0 个答案:

没有答案
相关问题