TypeError:无法设置属性' user'未定义的

时间:2014-09-20 19:42:47

标签: javascript node.js express

当我在网上服务器上加载时,我的网站上出现以下错误。 我使用快递3.x,第一个url没有probems,但我登录错误是

TypeError:无法在

设置未定义的属性'user'

我的代码是:

    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);

1 个答案:

答案 0 :(得分:0)

请说明您的问题正在发生的软件版本。有时版本是问题,我想这次也是。

首先,由于req.session.user = req.body.username;

,错误正在发生

表示您没有正确设置

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

虽然上面的代码应该工作。所以我假设您正在使用express 4.0并继续使用server.configure函数。由于快递版本3.x中的app.configure已在快速版本4.0中删除,因此上述代码在快速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');