关于req.session的问题

来源:7-7 session演示

皮小西

2021-10-14

const handleBlogRouter = (req, res) => {
  const method = req.method
  // 登录
  if (method === "GET" && req.path === "/api/user/login") {
    // const { username, password } = JSON.parse(JSON.parse(req.body))
    const { username, password } = req.query
    const result = login(username, password)
    return result.then(data => {
      if (data.username) {
        // 设置session
        req.session.username = data.username
        req.session.realname = data.realname
        console.log(req.session) // { username: 'zhangsan', realname: '张三' }
        return new SuccessModel("登陆成功")
      }
      return new ErrorModel("登陆失败")
    })
  }
      // 登录验证的测试
  if (method === 'GET' && req.path === '/api/user/login-test') {
        console.log(req.session)
        if (req.session.username) {
            return Promise.resolve(
                new SuccessModel({
                    session: req.session
                })
            )
        }
        return Promise.resolve(
            new ErrorModel('尚未登录')
        )
    }
}

老师您好,我想请教一下,
req.cookie是保存在本地浏览器中(可以在浏览器的Network中看到cookie值),而req.session是保存在服务器中的(而在本地浏览器中不存在)。浏览器根据cookie的userid值去读取session的值。
我这么理解请问对吗?
谢谢。

写回答

2回答

双越

2021-10-15

对的。

0
0

皮小西

提问者

2021-10-14

        // 设置session
        req.session.username = data.username
        req.session.realname = data.realname

还想请问一下,那这一步的设置session赋值,是在本地浏览器设置session,还是在服务器中设置的?

我还是不太理解。麻烦指点一下,谢谢!

0
1
双越
本地还是服务器?这简单啊,你看这两句代码是在哪里被执行的?—— 当然是服务器执行的。
2021-10-15
共1条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程