javascript - 类型错误 : Cannot set property 'user' of undefined at

标签 javascript node.js express

当我将网站加载到在线服务器上时,我的网站上出现以下错误。 我使用express 3.x,第一个网址没有探针,但我登录时错误是

类型错误:无法设置未定义的属性“用户”

我的代码是:

    server.engine('html', swig.renderFile);
    server.set('view engine', 'html');
    server.set('views', './app/views');

    server.configure(function() {
        server.use(express.logger());
        server.use(express.cookieParser());
        server.use(express.bodyParser());

        server.use(express.session({
            secret: "lolcatz",
            store: new RedisStore({})
        }));
    });

    server.get('/', function (req, res){
        res.render('home');
    });

    server.get('/app', function (req, res) {
        res.render('app', { 
            user: req.session.user
        });
    });

    server.post('/log-in', function (req, res) {
        req.session.user = req.body.username;
        res.redirect('/app');
    });

    server.listen(3000);

最佳答案

请说明您出现问题的软件版本。有时版本是问题,我想这次也是如此。

首先,错误的发生都是因为req.session.user = req.body.username;

这说明你没有正确设置

server.use(express.session({ secret :“lolcatz”, 存储:新的RedisStore({}) }));

虽然上面的代码应该可以工作。所以我假设您使用的是express 4.0并继续使用server.configure函数。由于express版本3.x中的app.configure在express版本4.0中被删除,上面的代码在express 4.0中不起作用

所以只需删除该函数并使其类似于...

server.use(express.logger());
server.use(express.cookieParser());
server.use(express.bodyParser());

server.use(express.session({
    secret: "lolcatz",
    store: new RedisStore({})
}));

server.get('/', function (req, res){
    res.render('home');

关于javascript - 类型错误 : Cannot set property 'user' of undefined at,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952639/

相关文章:

javascript - 为什么我的 box2d.js/canvas 脚本在 firebug 打开时运行得更快?

node.js - 如何在 Meteor 中执行服务器端文件处理操作?

mongodb - Node 和 Mongoose - 如果首次尝试连接时 mongod 未运行,则不会重新连接

node.js - Passport JWT : req. 用户始终未经授权

javascript - 如何使用内联样式在滚动时使用变换 : rotate() with react. js

javascript - 复选框根据表单 ID 选择全部

node.js - 逾期任务通知电子邮件逻辑

node.js - bluemix 运行时 : auto vertical scalability?

node.js - 将大文件上传到 NodeJS 网络服务器

javascript - Signal-r安装问题