0
세션 변수를 사용하는 Express 및 Node.js에서 쉽게 proyect를 만들고 있는데 브라우저에 오류가 있으며 그 이유를 모르겠습니다. 오류는 다음과 같습니다Node.js + Express의 세션 변수 오류
Express
500 TypeError: Cannot read property 'variable' of undefined
at /Users/jorgeregidor/zzz/app.js:44:24
etc....
그것은 당신이 변수 세션()을 선언하지 않을 때 발생 같은 오류입니다,하지만 당신은 코드에서 볼 수 있듯이 다음과 같이 아래에 정의되어 있습니다
응용 프로그램을. 사용 (express.cookieParser()); app.use (express.session ({secret : "secret"})));
하여 app.js 코드의 나머지 부분은 다음과 같습니다
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var database = require('./routes/database')
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.cookieParser());
app.use(express.session({secret : "secret"}));
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', database.show);
app.post('/users', database.add);
app.post('/users/del', database.del);
app.get('/autenticacion',database.autenticar);
app.post('/autenticacion',function(req, res){
req.session.variable = req.body.name; **//ERROR**
res.redirect('/secreta');
});
app.get('/secreta',function (req,res){
if (typeof(req.session.variable) != "undefined") **//ERROR**
{ res.render('secreta',{titulo:'secreta'});}
else {res.rendirect('/autenticar');}
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
덕분에 당신에게 너무 많은! – jorgeregidor
de nada mi amigo! :) –