私はノードを使い慣れておらず、すべての約束事とpg-promiseを学んでいます。新しいユーザーを作成見つからない場合は、チェックのユーザー名を見つけていない場合 約束を使ってステートメントを連鎖させる方法
- チェック電子メール:これは私がExpressとPG-約束を使って何をしたいのかです。
- 戻りユーザID偉大な作業をされたSQLを実行し
私は私のレポは(db.users)を設定持っています。
私の認証ハンドラでは、どのように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はこのように連鎖しませんか?彼らはお互いに入れ子になっているのか、まったく別のブロックになっているのでしょうか?また、キャッチがどこに行くのかは不明です。私は、さまざまなチュートリアルの後に私が考えることができるあらゆる方法を試しましたが、「設定済みのヘッダーを設定できません」や「約束が返されていません」といったエラーが発生します。どんな親切な人でも私をここで案内できるなら、本当に感謝しています。
これはPG-promise'のドキュメントは決してしないために教えてくれる、まさに 'です:https://github.com/vitaly-t/pg-promise/wiki/Common-Mistakes#tasks-versus-rootdirect-クエリ。それが十分に悪いことではない場合、クエリは依存しているため、独立して実行することはできません。 –
@ vitaly-tはい。あなたが正しいです。それを指摘してくれてありがとう。あなたをアップアップする – Sridhar