こんにちは、Postgresql を初めて使用するので、エラーがスローされたときに 0 の結果を処理する方法を学びたいと思いました。基本的に、ユーザーが存在しない場合はユーザーを取得し、存在しない場合は null を返し、エラーハンドラーが必要です。以下は、私が使用している現在のコードです。これを行うためのより良い方法に関するヒントは大歓迎です!
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'"
}