Перехват исключения из прослушивателя событий в экспресс-маршруте - PullRequest
1 голос
/ 25 июня 2019

Я использую 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 ответ клиенту. Можете ли вы сказать мне, что является хорошим подходом для обработки такого рода исключений, генерируемых слушателями событий в экспресс-маршруте?

...