У меня есть приложение node.js, использующее Express и Redis. У меня вопрос, как мне выявить и обработать ошибку подключения Redis. У меня есть функция app.error в express, которая обрабатывает большинство ошибок приложения, но поскольку эта ошибка возникает в библиотеке redis, она становится неперехваченным исключением, и все приложение отключается.
Могу я просто определить метод on_error в моем клиенте Redis, и это поможет? Если да, может быть, какой-нибудь образец кода? Должен ли я как-то обрабатывать это при ошибке следующего тика node.js? Я не уверен, что правильно понимаю следующее утверждение, поэтому не уверен, что лучше всего.
В приведенном ниже коде блок перехвата никогда не срабатывает, даже если есть ошибка соединения.
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)