Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

390
Visualizações
¿Cómo atrapo los errores de psql en el nodo?

Actualmente estoy escribiendo un servidor de nodo back-end con una base de datos Postgresql donde intenté configurar una API de registro. Quiero poder detectar errores causados por violaciones de restricciones únicas. ¿Cómo puedo hacer eso?

 function createMember(body, callBack){ // This function adds someone who is newly registered to the database. var id; var sql = 'INSERT INTO member (fname, lname, phone, email, age, gender) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id;'; db.query(sql, [body.fname, body.lname, body.phone, body.email, body.age, body.gender]).then(res => { id = res.rows[0].id; if (id) { callBack(body); console.log("New member with id: " + id); } }).catch(e => { if (the error is a unique constraint violation){ console.log("\n ERROR! \n Individual with name: " + body.fname + " " + body.lname + " and phone #: " + body.phone + " is a duplicate member. \n"); callBack("Duplicate"); return; } console.log("\n \n ERROR! \n Individual with name: " + body.fname + " " + body.lname + " and phone #: " + body.phone + " could not be added. \n", e); callBack(false); return e; }) }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Entonces, como no he encontrado ninguna respuesta a esto, creo que puedo compartir la mía.

Cada error en Postgresql tiene un código de error que se puede encontrar en: https://www.postgresql.org/docs/12/errcodes-appendix.html

Si observa el error que obtiene cuando hay una violación de clave única, puede notar que el código es "23505".

Simplemente agregue una marca en su bloque catch para ver si el error tiene un código de "23505".

 function createMember(body, callBack){ // This function adds someone who is newly registered to the database. var id; var sql = 'INSERT INTO member (fname, lname, phone, email, age, gender) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id;'; db.query(sql, [body.fname, body.lname, body.phone, body.email, body.age, body.gender]).then(res => { id = res.rows[0].id; if (id) { callBack(body); console.log("New member with id: " + id); } }).catch(e => { if (e.code == '23505'){ console.log("\n ERROR! \n Individual with name: " + body.fname + " " + body.lname + " and phone #: " + body.phone + " is a duplicate member. \n"); callBack("Duplicate"); return; } console.log("\n \n ERROR! \n Individual with name: " + body.fname + " " + body.lname + " and phone #: " + body.phone + " cannot be added. \n", e); callBack(false); return e; }) }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda