我目前正在编写一个带有PostgreSQL数据库的后端节点服务器,尝试进行注册API设置。 我想要能够捕获由唯一性约束违反引起的错误。 我该怎么做?
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;
})
}
db
是连接到数据库的 pg 客户端。另外,当你说“mapping”时,我不确定你的意思。如果你的意思是询问数据库是否以那种方式填充,那么是的。 - Osama Hafezdb
... 难道不只是 pg 客户端吗?Pg 是一个 Node 模块,可用于将 Node 实例作为客户端连接到 PostgreSQL 数据库。db
客户端是一个对象。 - Osama Hafez