当我在网上服务器上加载时,我的网站上出现以下错误。 我使用快递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);
答案 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');