【发布时间】:2017-02-05 09:47:06
【问题描述】:
我是 node 新手,正在学习所有关于 Promise 的知识,特别是 pg-promise。这就是我想要使用 Express 和 pg-promise 做的事情:
- 检查电子邮件,
- 如果找不到,请检查用户名,
- 如果找不到,请创建一个新用户。
- 返回用户ID
我已经设置了我的 repo (db.users),它执行的 sql 运行良好。
在我的授权处理程序中,我不确定如何使 repo 调用彼此跟随。语法对我来说似乎很笨拙。到目前为止,这是我所拥有的:
exports.signup = function( req, res, next ) {
const username = req.body.username;
const email = req.body.email;
const password = req.body.password;
// See if a user with the given email exists
db.users.byEmail({email: email})
.then(user => {
if (user) {
return res.status(422).send({ error: 'Email is in use'});
} else {
return null; <-- must I return something here?
}
})
.then(() => {
db.users.getUsername({username: username})
.then(user => {
if (user) {
return res.status(422).send({ error: 'Email is in use'});
} else {
return null; <-- must I return something here?
}
...etc
})
也许 pg-promises 不会像这样链接在一起?它们应该相互嵌套还是完全独立的块?此外,不太确定捕获的位置。按照各种教程,我已经尝试了所有我能想到的方法,但是我收到了诸如“无法设置已设置的标头”和“未返回承诺”之类的错误。如果哪位好心人能在这里指导我,我将不胜感激。
【问题讨论】:
标签: node.js express pg-promise