티스토리 뷰
express session 설정.
express를 이용하여 http 서버 구현중 기존의 express버전의 3.0.x 버전 때에서 동작하던
redis session store 설정 부분에 오류가 발생 하였다.
읭???
RedisStore.prototype.__proto__ = Store.prototype;
^
TypeError: Cannot read property 'prototype' of undefined
at module.exports (/home/juno/work/eapp/node_modules/connect-redis/lib/connect-redis.js:96:41)
at Object.<anonymous> (/home/juno/work/eapp/app.js:15:43)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
기존 express 3.0.4에서의 구현 코드는 아래와 같았다.
var express = require('express'); var RedisStore = require ('connect-redis')(express); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({ secret: 'rocksea', store: new RedisStore({ port : _config.redis.port, host : _config.redis.host, db : _config.redis.database, ttl : _config.redis.ttl }), cookie: { path : _config.cookie.path, domain : _config.cookie.domain, httpOnly : _config.cookie.httpOnly, maxAge : _config.cookie.maxAge } }));
하지만 새로운 Project에 적용하려고 했던 버전은 3.4.x 버전.
session 모듈이 따로 분리 되어서 발생한 에러였다.
Solution.
express-session 모듈을 설치 해준다.
$ npm install express-session --save
code.
var app = express(); var session = require('express-session') var RedisStore = require ('connect-redis')(session); app.use(express.cookieParser()); app.use(session({ secret: 'rocksea', store: new RedisStore({ port : config.redis.port, host : config.redis.host, db : config.redis.database, ttl : config.redis.ttl }), cookie: { path : config.cookie.path, domain : config.cookie.domain, httpOnly : config.cookie.httpOnly, maxAge : config.cookie.maxAge } }));
위와 같이 수정하니 잘 동작 하였다.
express 버전이 올라가면서 session쪽 모듈이 따로 분리되었나보다.
관련 spec을 찾아봐야 겠다.
MODIFIED 2014.03.13 : 관련 SPEC URL - https://github.com/visionmedia/connect-redis
.by rocksea
'Developer' 카테고리의 다른 글
[nodejs] iodocs를 이용한 rest api 정의. (0) | 2014.03.19 |
---|---|
[nodejs] connect 3.0 업데이트. (0) | 2014.03.12 |
[IDL] Thrift 설치. (0) | 2014.03.11 |
[linux] cpu affinity. (0) | 2014.02.19 |
[i/o] Level Trigger, Edge Trigger (0) | 2014.02.13 |
- Total
- Today
- Yesterday
- Business English
- nodejs
- 영문법
- 스페인 여행
- 해외여행
- 베트남
- 다낭
- NGINX
- k8s
- ubuntu
- 가정법
- 영작
- redis
- hadoop
- JBOSS
- 대명사 구문
- Python
- 여행
- 조동사
- 비지니스 영어
- 비교구문
- hdfs
- AWS
- Python Django
- memcached
- it
- mongoDB
- maven
- 도덕경
- PostgreSQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |