Я использую nodejs, express и node-mysql2 для моего приложения. Я хочу, чтобы часовой пояс для каждого соединения использовал UTC, чтобы мои столбцы time_created и time_modified (MYSQL: On update CURRENT_TIMESTAMP) имели метку времени только в UTC. У меня нет прав для установки метки времени сервера MYSQL, поэтому мне нужно сделать это только в моем приложении .
Я использую пул соединений и добавляю прослушиватель событий для события соединения, который устанавливает часовой пояс для этого соединения в формате UTC.
pool.on('connection', (conn) => {
conn.query("SET time_zone='+00:00';", (error) => {
if (error) {
throw error;
}
});
});
Мое определение маршрута похоже на это:
router.get('/route', async (req, res) => {
try {
const [rows] = await pool.execute('SELECT * FROM student', []);
return res.status(200).send('Success');
} catch (e) {
return res.status(500).send('Failure');
}
});
Если этот запрос "SET time_zone = '+ 00:00'" в прослушивателе событий завершится неудачно, мой сервер узлов потерпит крах с помощью трассировки стека на консоли. Я хочу поймать такого рода ошибки в моем маршруте или где угодно, чтобы я мог отправить 500 ответ клиенту. Можете ли вы сказать мне, что является хорошим подходом для обработки такого рода исключений, генерируемых слушателями событий в экспресс-маршруте?