Good day,

Only recently began to learn javascript node.js and got stuck on proper error handling.

Here is the router code (router.js):

router.get('/person/:idperson', function(req, res, next) { pool.query('SELECT nickname, regdate, place, birthdate, sex, aboutme FROM person WHERE idperson = ?', req.params.idperson, function(err, rows, fields, next) { if (err) return next(err); //выбрасывает ошибку mysql-запроса в app.js ------- Как обработать ошибку возникшую в этой части - непонятно if (!rows[0]) res.render('patrials/error', { pageTitle: 'Персона не найдена', errormesage: 'Такого человека нет'}) else res.render('person', { pageTitle: rows[0].nickname+' | Профиль', sqlperson : rows[0]}); ------- }); ---- При этом ошибки возникающие тут(если написать), отлично выбрасываются в app.js }); 

Here is the error handler (app.js):

 app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('patrials/error', { message: err.message, error: err }); }); 

PS In general, in theory, res.render should not be in the nested function of a Mysql request, but I haven’t figured out yet how to make the render wait for the response of the function requesting information in the database and correctly transfer the result to a different scope.

0