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);
});