Mam aplikację node.js za pomocą Express i Redis. Moje pytanie brzmi: jak złapać i obsłużyć błąd połączenia Redis. Mam funkcję app.error w wyrażeniu, które obsługuje większość błędów aplikacji, ale ponieważ ten błąd jest błędem, który zostanie zgłoszony w bibliotece redis, staje się nieprzechwyconym wyjątkiem i cała aplikacja przestaje działać.sposób obsługi nieobsługiwanych wyjątków w bibliotekach w pliku node.js
Czy mogę po prostu zdefiniować metodę on_error na moim kliencie Redis i to wystarczy? Jeśli tak, może jakiś przykładowy kod? Czy powinienem jakoś sobie z tym poradzić w kolejnym błędzie node.js? Nie jestem pewien, czy rozumiem dokładnie następną wypowiedź, więc nie jestem pewien, jaka jest najlepsza praktyka.
W kodzie poniżej bloku catch nigdy nie dostanie, nawet jeśli nie jest to błąd połączenia
try
{
feedClient = redis.createClient(feedPort, feedHost);
}
catch (error)
{
console.log('cannnot start redis' + error);
}
Oto nieprzechwycony błąd
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Redis connection to localhost:6379 failed - ECONNREFUSED, Connection refused
at RedisClient.on_error (/node_modules/redis/index.js:136:24)
at Socket. (/node_modules/redis/index.js:70:14)
at Socket.emit (events.js:64:17)
at Array. (net.js:830:27)
at EventEmitter._tickCallback (node.js:126:26)
Prawie duplikat do http://stackoverflow.com/q/8071291/638546 –