在pg-promise中返回
我使用pg-promise
模块为Node创build了一个包含所有查询的单独文件。 虽然对于他们中的大多数,我只是在查询后使用req, res
,我想返回一个值。 这是行不通的。 它返回undefined
。
passportLogin: (email)=> { db.one(`SELECT userid FROM user`) .then( result => { return result; }) .catch( error => { return error; }); }
该代码在同一时间有两个问题:
- 无效的承诺使用,当在里面
.catch
你做return result
,这不是如何处理拒绝拒绝,你必须提供error handling,或重新抛出/重新拒绝错误。 - 无效使用pg-promise库。 你使用的方法之一应该是拒绝的时候,除了1条logging被返回, 按照方法的文档 ,同时你说
I need to catch if it returns more than one row...
,这是一个逻辑矛盾。
其结果如下:你的查询执行成功,并返回多个logging,这又使得方法一拒绝,然后通过return result
将拒绝原因转化为已解决的return result
。 总而言之,你的代码遍布全球。
首先,根据你所期望的logging数量,你应该使用正确的方法,参见基础知识 。
然后根据您的业务逻辑来处理.then/.catch
。 我不能在这里更具体,因为你没有提供进一步的细节。