session中使用session.user提示Cannot read property 'user' of undefined

发布于 2022-09-06 01:32:25 字数 1565 浏览 27 评论 0

var express = require('express');
var users = require('../models/users');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var router = express.Router();
var app = express();

app.use(cookieParser());
app.use(session({
  secret: '123AppShop456', // 建议使用 128 个字符的随机字符串
  cookie: {
    maxAge: 60 * 1000
  },
  resave: false,
  saveUninitialized: true
}));

app.use(router)

router.get('/', function (req, res, next) {
  res.send('respond with a resource');
});

router.get('/test', function (req, res, next) {
  res.send('test');
});

router.get('/user', function (req, res, next) {
  console.log(req.session)
  if (req.session.user !== null) {
    res.json({
      status: '0',
      msg: '',
      result: {
        userName: req.session.user
      },
    })
  } else {
    res.json({
      status: '1'
    })
  }
});

router.post("/", function (req, res, next) {
  var param = {
    userName: req.body.userName,
    pwd: req.body.password
  }
  users.findOne(param, function (err, doc) {
    if (!err && !doc) {
      res.json({
        status: '1'
      })
    } else {
      if (doc) {
        req.session.user = doc.userName,
        console.log(doc.userName, req.session.user)
        res.json({
          status: '0',
          msg: '',
          result: {
            userName: doc.userName
          }
        })
      }
    }
  })
});

module.exports = router;

想使用session用作登陆,但是始终提示Cannot read property 'user' of undefined。
目前google到的方法无效,router放后面都不行
不用session的代码正常无报错

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苏辞 2022-09-13 01:32:25

下面用的是router,所以session注册点应该是router.use里

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文