私はノードが初めてで、プロミス、特に pg-promise についてすべて学んでいます。これは、Express と pg-promise を使用してやりたいことです。
- メールをチェックする、
- 見つからない場合は、ユーザー名を確認してください。
- 見つからない場合は、新しいユーザーを作成します。
- ユーザーIDを返す
私はうまく機能しているSQLを実行するレポをセットアップしました(db.users)。
私の承認ハンドラーでは、レポ呼び出しを互いに追跡する方法がわかりません。構文は私には不格好に思えます。これが私がこれまでに持っているものです:
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 はこのように連鎖しませんか? それらは互いに入れ子にする必要がありますか、それとも完全に別々のブロックにする必要がありますか? また、キャッチがどこに行くのかよくわかりません。さまざまなチュートリアルに従って、考えられるあらゆる方法を試しましたが、「既に設定されているヘッダーを設定できません」や「約束が返されていません」などのエラーが発生します。ここで親切な人が私を案内してくれるなら、本当に感謝しています。