У меня есть приложение node.js, использующее Express и Redis. Мой вопрос, как я могу поймать и обработать ошибку подключения Redis. У меня есть функция app.error в экспрессе, которая обрабатывает большинство ошибок приложения, но, поскольку эта ошибка является ошибкой, возникающей в библиотеке redis, она становится неперехваченным исключением, и все приложение отключается.
Могу ли я просто определить метод on_error на моем Redis-клиенте, и это поможет? Если так, может, какой-нибудь пример кода? Должен ли я как-то обработать это в ноде: ошибка следующего тика? Я не уверен, что точно понимаю следующее утверждение, поэтому не уверен, какова лучшая практика.
В приведенном ниже коде блок catch никогда не срабатывает, даже если есть ошибка подключения
try
{
feedClient = redis.createClient(feedPort, feedHost);
}
catch (error)
{
console.log('cannnot start redis' + error);
}
Вот необнаруженная ошибка
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)