gpt4 book ai didi

node.js - 在 pg-promise 中返回

转载 作者:搜寻专家 更新时间:2023-10-31 23:59:54 24 4
gpt4 key购买 nike

我使用 Node.js 的 pg-promise 模块创建了一个包含所有查询的单独文件。虽然对于其中的大多数,我只是在查询后使用 req, res,但对于其中一个,我想返回一个值。这是行不通的。它返回 undefined

passportLogin: (email)=> {
db.one(`SELECT userid
FROM user`)
.then( result => {
return result;
})
.catch( error => {
return error;
});
}

最佳答案

该代码同时存在两个问题:

  • 无效的 promise 使用,当在 .catch 中您执行 return result 时,这不是处理 promise 拒绝的方式,您必须提供错误处理或重新抛出/重新拒绝错误。
  • 无效使用pg-promise图书馆。您使用方法 one当返回 1 条记录以外的任何内容时应该拒绝,as per the method's documentation ,同时你说 I need to catch if it returns more than one row...,这是一个逻辑矛盾。

结果如下:你的查询执行成功,返回多条记录,这又使得方法one reject,然后你接受拒绝原因并通过执行return result将它变成一个已解决的原因。总之,您的代码到处都是错误的。

首先,使用 pg-promise根据您期望返回的记录数,您应该使用正确的方法,请参阅 The Basics .

然后根据你的业务逻辑处理.then/.catch。我不能在这里更具体,因为您没有提供更多详细信息。

关于node.js - 在 pg-promise 中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38545958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com