.query()
として は非同期メソッドであるため、return
を返すことはできません。 コールバックとしての値はafterと呼ばれます return
評価されます。
callback
を続行する必要があります パターン:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
訂正:client.end()
のようです 接続が実際に閉じる前に、現在のクエリを終了できるようになります。
ただし、.end()
を呼び出す コールバック内は、保留中のアクションをすべて遮断するため、多くのAPIでは一般的です。