我正在为我的应用程序使用nodejs,express和node-mysql2。我希望每个连接的时区都使用UTC,以便我的time_created和time_modified(MYSQL:更新时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'”失败,则我的节点服务器在控制台上使用stacktrace崩溃。我想在我的路线或任何地方捕获此类错误,以便向客户发送500条响应。您能告诉我什么是处理快速通过事件侦听器引发的此类异常的好方法吗?