Генерация исключения внутри обработчика запроса mysql вышибает сервер на express напрочь.
router.get('/user/:userId', (req, res) => {
// let sid = req.query.sid
const {db} = req.app.locals;
db.query('SELECT * FROM `users` WHERE `id`=' + req.params.userId, (error, results, fields) => {
if (error) {
throw error
}
if (results.length) {
res.send(results)
} else {
throw new Error("User not found.")
}
})
})
Вылетает со следующей ошибкой.
D:\Project\vopen\server\node_modules\mysql\lib\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^
Error: User not found.
at Query.db.query (D:\Project\vopen\server\routers\users\index.js:16:11)
at Query.<anonymous> (D:\Project\vopen\server\node_modules\mysql\lib\Connection.js:525:10)
at Query._callback (D:\Project\vopen\server\node_modules\mysql\lib\Connection.js:491:16)
at Query.Sequence.end (D:\Project\vopen\server\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query.ErrorPacket (D:\Project\vopen\server\node_modules\mysql\lib\protocol\sequences\Query.js:90:8)
at Protocol._parsePacket (D:\Project\vopen\server\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (D:\Project\vopen\server\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (D:\Project\vopen\server\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (D:\Project\vopen\server\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (D:\Project\vopen\server\node_modules\mysql\lib\Connection.js:91:28)
Перерыл все, что можно было перерыть, нигде ничего нет по этой теме.
Как быть, как правильно обрабатывать ошибки в запросах mysql?