【问题标题】:Nodejs - Cannot set property of undefined sessionsNodejs - 无法设置未定义会话的属性
【发布时间】:2015-08-14 18:09:34
【问题描述】:

我正在为 nodejs 使用 express 3 框架。我正在尝试设置会话,这是我的代码

var express = require('express');

    var app = express();
    var parseExpressCookieSession = require('parse-express-cookie-session');
    var parseExpressHttpsRedirect = require('parse-express-https-redirect');
    app.use(express.cookieParser());
    app.use(parseExpressCookieSession({
        secret: "The very sweet secret"
    }));
    app.use(app.router);


    app.get('/login', function (req, res) {
        req.session.uid = "dssss"
        console.log(req.session.uid);
        res.render('login', {
            title: 'Login'
        });
    })

我收到错误消息,说无法设置未定义的“uid”属性。我在这里做错了什么?

【问题讨论】:

标签: javascript node.js cookies express parse-platform


【解决方案1】:

您可以添加 express-session 模块并在此处查看:https://github.com/expressjs/session

来自文档:

req.session

要存储或访问会话数据,只需使用请求属性 req.session,它(通常)由存储序列化为 JSON,所以 嵌套对象通常很好。例如下面是一个 用户特定的查看计数器:

app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))

app.use(function(req, res, next) {
  var sess = req.session
  if (sess.views) {
    sess.views++
    res.setHeader('Content-Type', 'text/html')
    res.write('<p>views: ' + sess.views + '</p>')
    res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>')
    res.end()
  } else {
    sess.views = 1
    res.end('welcome to the session demo. refresh!')
  }
})

【讨论】:

    猜你喜欢
    • 2019-02-09
    • 2018-07-08
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多