Как поймать ошибку с помощью Postgres, PG, Express?

#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