2013-10-16 3 views
0

노드 재 연결 연결 redis 세션 설정을 사용하고 있습니다. 나는 restic의 'uncaughtException'이벤트를 통해 잡히지 않은 예외를 처리하고있다. 그러나 redis 연결을 사용하면 uncaughtExceptions가 발견되지 않고 서버가 종료됩니다.연결 redis 세션과 restify uncaughtException 예외 처리 (서버 종료)

재현하는 방법 : 다음 코드를 실행 한 다음 로컬 호스트로 이동 브라우저

var connect = require('connect'); 
var restify = require('restify'); 
var bunyan = require('bunyan'); 
var RedisStore = require('connect-redis')(connect); 

var app = restify.createServer({ 
    log : bunyan.createLogger({name: "server"}), 
}); 

var log = bunyan.createLogger({name: "app"}); 

app.on('uncaughtException', function(request, response, route, error) { 
    log.error(error); 
    response.send(new restify.InternalError("Internal server error")); 
}); 
// please see 
/*http://stackoverflow.com/questions/19409441/req-originalurl-not-set-by-restify-it-is-needed-by-connect-session-middleware/*/ 
app.use(function(req, res, next) { 
    req.originalUrl = req.url; 
    next(); 
}); 

app.use(connect.cookieParser()); 

app.use(connect.session({ 
    secret : "open sesame", 
    store: new RedisStore({ 
    "host": "127.0.0.1", 
    "pass": "", 
    "port": 6379 
    }) 
})); 
//app.use(connect.static(__dirname + '/public')); 

app.get('/api/boom', function(req, res, next) { 
    throw new Error("Boom!"); 

    res.send("ok"); 
    next(); 
}); 
(app).listen(8000, function() { 
    console.log("server started. Listening at " + 8000); 
}); 

답변

0

나는 위의 코드를 실행하고, 브라우저가 아래의 출력에 8000/API/붐, 서버 실행중인 상태 :

{"code":"InternalError","message":"Internal server error"} 

이전 버전의 노드를 사용하고 있습니까? 필요한 항목 각각에 대해 "npm install"을 올바르게 실행 했습니까? 더 많은 정보를 제공하면 더 많은 것을 도와 드릴 수 있습니다!