Return 在 pg-promise 中
Return in pg-promise
我使用 pg-promise
Node.js 模块创建了一个包含所有查询的单独文件。虽然对于其中的大多数,我只是在查询后使用 req, res
,对于其中一个,我想 return 返回一个值。这是行不通的。它 returns undefined
.
passportLogin: (email)=> {
db.one(`SELECT userid
FROM user`)
.then( result => {
return result;
})
.catch( error => {
return error;
});
}
该代码同时存在两个问题:
- 无效的 promise 使用,当在
.catch
你做 return result
时,这不是处理 promise 拒绝的方式,你必须提供错误处理,或者重新抛出/重新拒绝错误.
- 无效使用pg-promise library. You use method one that's supposed to reject when anything other than 1 record is returned, as per the method's documentation,同时你在说
I need to catch if it returns more than one row...
,逻辑上自相矛盾
结果如下:你的查询执行成功,returns多条记录,进而让方法one拒绝,然后你取拒绝原因转通过 return result
将其转化为已解决的问题。总之,您的代码到处都是错误的。
先用pg-promise you are supposed to use the right method, according to the number of records you are expecting back, see The Basics.
然后根据您的业务逻辑处理.then/.catch
。我不能在这里更具体,因为你没有提供更多细节。
我使用 pg-promise
Node.js 模块创建了一个包含所有查询的单独文件。虽然对于其中的大多数,我只是在查询后使用 req, res
,对于其中一个,我想 return 返回一个值。这是行不通的。它 returns undefined
.
passportLogin: (email)=> {
db.one(`SELECT userid
FROM user`)
.then( result => {
return result;
})
.catch( error => {
return error;
});
}
该代码同时存在两个问题:
- 无效的 promise 使用,当在
.catch
你做return result
时,这不是处理 promise 拒绝的方式,你必须提供错误处理,或者重新抛出/重新拒绝错误. - 无效使用pg-promise library. You use method one that's supposed to reject when anything other than 1 record is returned, as per the method's documentation,同时你在说
I need to catch if it returns more than one row...
,逻辑上自相矛盾
结果如下:你的查询执行成功,returns多条记录,进而让方法one拒绝,然后你取拒绝原因转通过 return result
将其转化为已解决的问题。总之,您的代码到处都是错误的。
先用pg-promise you are supposed to use the right method, according to the number of records you are expecting back, see The Basics.
然后根据您的业务逻辑处理.then/.catch
。我不能在这里更具体,因为你没有提供更多细节。