#javascript #node.js #postgresql #express #error-handling
Вопрос:
const pool = require('../db') const asyncHandler = require('express-async-handler') const { generateToken } = require('../middleware/userAuth') // @desc Register New User // @route POST /api/users/register // @public Public const registerUser = asyncHandler(async(req, res) =gt; { const { email, name, password } = req.body const newUser = { name, email, password } const existingUser = '' if (existingUser) { res.status(400) throw new Error('User Already Exists') } else { try { const result = await pool.query( 'INSERT INTO users (name, email, password) VALUES ($1, $2, $3) RETURNING *', [name, email, password], (err, res) =gt; { if (err) { console.log(err) } } ) res.status(201) res.json(result.rows) } catch (error) { console.log(error) res.status(400) throw new Error('Unable to create user') } } })
Я пытаюсь понять, как утешить.регистрируйте ошибки, возникающие из ошибок базы данных postgresql, когда я делаю запрос.
Пока что try/catch улавливает только основные ошибки в express. В console.log(ошибка) будет указано «Ошибка типа, не удается вернуть строки с неопределенными значениями», что означает, что переменная «результат» не определена из-за сбоя запроса и «Не удалось создать пользователя» из-за новой ошибки. (Я намеренно заставил его потерпеть неудачу)
Обратный вызов «err», похоже, не утешает.регистрируйте все, что угодно.
Я хотел бы иметь возможность увидеть, в чем конкретно в postgresql была проблема, например, в этом случае столбцов не существует.
Есть какие-нибудь идеи?
Комментарии:
1. Не используйте стиль обратного вызова для
pool.query
2. Я удалил обратный вызов, но по-прежнему не получаю ошибок от postgres