Так как я не нашел на это ответов, думаю, могу поделиться своим.
Каждая ошибка в Postgresql имеет код ошибки, который можно найти по адресу: https://www.postgresql.org/docs/12/errcodes-appendix.html
Если вы посмотрите на ошибку, которую вы получаете при нарушении уникального ключа, вы можете заметить, что код - «23505».
Просто добавьте чек в свой блок catch к проверьте, есть ли у ошибки код «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;
})
}