이 주제에 관해 많은 질문이 있었지만 아무도 내 문제를 해결할 수 없었습니다. 제가 익스프레스 앱을 개발했으며 인증 방법은 세션 객체에 쓰고 redis-store를 사용하는 것이 었습니다. 그것은 개발하는 동안 완벽하게 작동했습니다.request.session undefined. nodeJS express
그러나 처음에는 몇 가지 테스트 (모듈러스 사용)를 위해 사이트를 배포 한 후 req.session이 정의되지 않았다는 오류가 나타납니다. 이 코드는 localhost에서 실행할 때 여전히 잘 작동합니다.
이것은 실제로 내 첫 번째 웹 프로젝트이며, 내가 모르고 길을 통해 배워야 만하는 많은 명백한 요점과 트릭이있었습니다. 어쩌면 내가 여기 뭔가 간단하고 분명한 것을 놓치고있어, 몰라!
package.josn 종속성 :
"dependencies" : {
"express" : "~3.4.4",
"mongoose" : "~3.6.2",
"socket.io":"1.x" ,
"bcrypt-nodejs" : "0.0.3",
"connect-redis": "1.4.x" ,
"body-parser" : "1.4.3" ,
"cookie-parser": "~1.0.0",
"express-session": "~1.0.0"
} ,
응용 프로그램 구성
var express = require('express') ;
var app = express() ;
var http = require('http') ;
var io = require('socket.io') ;
var bodyParser = require('body-parser');
var mongoose = require('mongoose') ;
var mongoose1 = require('mongoose') ;
var bcrypt = require('bcrypt-nodejs') ;
var PORT = process.env.PORT || 8080 ;
var server = http.createServer(app) ;
var RedisStore = require('connect-redis')(express);
app.configure(function() {
app.use(express.static(__dirname + "/static")) ;
app.use(express.cookieParser());
app.use(express.bodyParser()) ;
app.use(express.session({
store: new RedisStore({
host: 'localhost',
port: 6379,
db: 2,
pass: '****'
}),
secret: '12345qwr'
})
);
}) ;
을하고 난 req.session에 도달했을 때 [] 내 서버, 응용 프로그램이 충돌하고 다시 시작 REQ 때문이다.. 세션이 정의되지 않았습니다. 내가 로그인 버튼을 POST 요청을 클릭 예를 들어 은 "/ API/로그인"또는 ..
app.post('/api/login' , function (req, res) {
UserDBModel.findOne({ username : req.body.user } , function (err, user) {
if (err) { res.json(err) ; }
if (user) {
if (bcrypt.compareSync(req.body.pass , user.password)) {
req.session.Auth = { username : user.username , password : user.password } ;
//app crashes here with error : TypeError: Cannot set property 'Auth' of undefined
}) ;
PS 전송됩니다. 인증을 위해, 나는 사용자 세션에 로그인 한 사용자의 암호와 해시 된 암호를 포함하는 "Auth"개체를 저장합니다.
나는이 문제에 대한 답변을 검색 한 레디 스 서비스를 실행하고 있는지 확인 이 문제의 대부분의 다른 모든 인스턴스에서 코더가이를 코딩하여 res 객체가 변수를 설정하기 전에 클라이언트에 응답 할 것이기 때문에 잠시 동안 모든 솔루션이 저에게 효과적이지 않았습니다. 이것은 전혀 나를 위해 사실이 아니었다, 이것은 일을 잘하는 것 같다, 많이 고마워! –