当我将网站加载到在线服务器上时,我的网站上出现以下错误。我使用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');
我是一名优秀的程序员,十分优秀!