我是 node 新手,并且学习了所有关于 Promise 的知识,特别是 pg-promise。这就是我想要使用 Express 和 pg-promise 做的事情:
- 查看电子邮件,
- 如果找不到检查用户名,
- 如果没有找到创建一个新用户。
- 返回用户id
我已经设置了我的存储库(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 不会像这样链接在一起?它们应该相互嵌套还是完全独立的块?此外,不太确定捕获的位置。按照各种教程,我已经尝试了所有我能想到的方法,但是我收到了诸如“无法设置已设置的标头”和“未返回承诺”之类的错误。如果有好心人可以在这里指导我,我将不胜感激。