2016-06-28 5 views
7

私はそれが形式、約束の最後の結果をキャッチラッパーを持っており、データ出力:1つのビューでただ実行する空の約束を作成しますか?

req.resolve = (promise) => { 
    return promise.then(() => { 
      res.json(req.user); 
     }).catch(Sequelize.ValidationError, err => { 
     // respond with validation errors 
     return res.status(422).send(err.errors); 
    }).catch(err => { 
     // every other error 
     return res.status(400).send({ message: err.message }); 
    }); 
}; 

を、私はそれが起こるすべての認証機能ということで、約束を持っていませんトリガーはreq.userを追加し、done()をトリガーします。

私はこのような約束を追加しようとしましたが、解決されません。

app.get('/user/me', auth, 
    (req, res, next) => { 
     req.resolve(new Promise()); 
    }); 
+0

パラメータが渡されずにreq.resolve()が返されるのは何ですか? – guest271314

+0

何も返さず、ブラウザにデータを出力します。それはexpress.jsで使用されているreqオブジェクトのデータにアクセスしています – Himmators

答えて

10

Promiseコンストラクタには、パラメータとしてexecutor関数が必要です。代入Promise.resolve()new Promise()

+0

これは動作しますが、警告が表示されます:警告:ハンドラで約束が作成されましたが返されませんでした – Himmators

+1

'return 'return res.json(req.user);での'文です。入れ子にされた '.catch()'関数の目的は何ですか? – guest271314

関連する問題