Tengo una aplicación node.js que usa Express y Redis. Mi pregunta es cómo atrapo y manejo un error de conexión de Redis. Tengo una función app.error en Express que maneja la mayoría de los errores de la aplicación, pero como este error es un error que se lanza a la biblioteca redis, se convierte en una excepción no detectada y toda la aplicación se cae.cómo manejar excepciones no controladas en bibliotecas en node.js
¿Puedo simplemente definir un método on_error en mi cliente redis y eso servirá? Si es así, ¿tal vez un código de muestra? ¿Debo de alguna manera manejarlo en un node.js próximo tic error? No estoy seguro de entender la siguiente declaración exactamente, así que no estoy seguro de cuál es la mejor práctica.
En el código de abajo del bloque catch no es golpeado, incluso si hay un error de conexión
try
{
feedClient = redis.createClient(feedPort, feedHost);
}
catch (error)
{
console.log('cannnot start redis' + error);
}
Aquí está el error sin capturar
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)
Casi duplicado en http://stackoverflow.com/q/8071291/638546 –