在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 。 我不能在这里更具体,因为你没有提供进一步的细节。