【发布时间】:2017-06-26 02:39:09
【问题描述】:
我使用 Node.js 的 pg-promise 模块创建了一个包含所有查询的单独文件。虽然对于他们中的大多数人我只是在查询后使用req, res,但对于一个我想返回一个值。这没用。它返回undefined。
passportLogin: (email)=> {
db.one(`SELECT userid
FROM user`)
.then( result => {
return result;
})
.catch( error => {
return error;
});
}
【问题讨论】:
-
你定义了一个没有返回值的函数,那么你期望什么?在
db.one()之前添加return,您应该会得到承诺。 -
在
db.one()之前添加return并去掉另外两个returns 会返回一个空对象。 -
你的
then()和catch()在这里几乎没用,所以一起摆脱它们。 -
好吧,这个查询实际上要复杂得多,如果它返回多行,我需要捕获......即使返回的对象不应该是空的,它仍然是空的。
-
那么你为什么要摆脱另外两个
returns 呢?如果你从一个 Promise 回调中返回一个值,它会返回一个新的 Promise,这个 Promise 是用那个值来解决的。我猜你需要代码中的结果,它调用passportLogin()。
标签: node.js postgresql express pg-promise