你好我是Postgresql的新手,我想知道如何處理0結果作爲錯誤被拋出。基本上我想要一個用戶,如果它不存在,返回null如果沒有,並且有一個錯誤處理程序。以下是我正在使用的當前代碼。任何提示,以更好的方式來做到這一點,表示讚賞!Node/Express&Postgresql - 當沒有行匹配時
var options = {
// Initialization Options
promiseLib: promise
};
var pgp = require('pg-promise')(options);
var connectionString = 'postgres://localhost:5432/myDbName';
var db = pgp(connectionString);
function getUser(id) {
let user = new Promise(function(resolve, reject) {
try {
db.one('select * from users where loginName = $1', id).then(function(data) {
console.log(data);
resolve(data);
}).catch (function (e) {
console.log('error: '+e);
reject(e);
});
}
catch (e) {
console.log('error: '+e);
reject(e);
}
});
return user;
}
輸出控制檯:
error: QueryResultError {
code: queryResultErrorCode.noData
message: "No data returned from the query."
received: 0
query: "select * from users where loginName = 'someUserName'"
}
你使用哪個節點postgres模塊? – Paul
pg-promise –
如果找不到該行是正常情況(不是錯誤),則應該使用方法'oneOrNone',並檢查已解析的值爲null。使用'.catch'來處理實際的錯誤。 –