0

私がしたいのは、クエリを実行し、電子メールアドレスが既に登録されているかどうかを確認し、登録されている場合はリクエストを拒否し、そうでない場合は検証を実行してから、ユーザーテーブルにユーザーを作成することだけです。これはちょっとしたシェルです。コードはもともとhttps://github.com/vitaly-t/pg-promise-demoに基づいていました。そのコードは素晴らしいですが、私はそうではありません。約束は私にとってまったく無意味です。何をどこに返すべきなのかわかりません。

このコードは実行され、本来の目的を達成しますが、キャッチにヒットし、「未定義のプロパティ 'then' を読み取ることができません」というメッセージが返されます。最初の .then() 内にないように 2 番目の .then をチェーンしようとすると、既に送信された後に res を変更しようとしているというエラーが表示されます。

誰かがここで何が間違っているのか、それを修正する方法を理解するのを手伝ってもらえますか?

useradd: function (req, res) {
    db.users.findbyemail(req.body.email)
        .then(function(data){
            if( typeof data === undefined || data === null) {
                 db.users.add({
                    provider: 'local',
                    email: req.body.email, 
                    password: req.body.password, 
                    salt: 'salt', 
                    displayName: req.body.displayName })
                    .then(function(data){
                        res.json({
                            success: true,
                            data: "Account created"
                        })
                    }) 
            } else {
                 res.json({
                    success: false,
                    error: "Email address " + req.body.email + " is already registered on this site"
                })
            }
        })    

        .catch(function(error){
            res.json({
                success: false,
                error: error.message || error
            })
        })
}
4

1 に答える 1