gpt4 book ai didi

sql - 在 Node.js 中捕获 SQL 错误

转载 作者:行者123 更新时间:2023-11-29 13:00:24 25 4
gpt4 key购买 nike

我有一个 pSQL 表设置为需要某些数据的唯一值,我调用函数插入此数据:

CREATE OR REPLACE FUNCTION create_location(
name text,
latitude numeric,
longitude numeric,
logo_url text = '')
RETURNS void AS $$
INSERT INTO "PartySpot".locations (name, latitude, longitude, logo_url)
VALUES (name, latitude, longitude, logo_url);

$$ LANGUAGE SQL VOLATILE STRICT;

我从带有 node.js/express 的端点调用它:

pg.connect(connectionString, function(err, client, done) {

var query = client.query("SELECT * FROM create_location($1,$2,$3,$4)",
[req.body.name,
req.body.latitude,
req.body.longitude,
req.body.logo_url]
);

query.on('row', function(row) {
results.push(row);
});

query.on('end', function(row) {
client.end();
return res.json(results);
});

if(err) {
console.log(err);
}
});

当 key 是唯一的时,这工作正常,但是当测试它不是唯一的条件时,错误不会被 if (err) block 捕获,它会无人处理并崩溃服务器。

处理这种情况的正确方法是什么?有没有办法在 SQL 中做到这一点?

最佳答案

您可以在查询对象上添加一个 error 事件处理程序以在查询执行期间捕获错误:

query.on('error', function(err) {
console.log('Query error: ' + err);
});

关于sql - 在 Node.js 中捕获 SQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32079482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com