.catch()Promise を使用して Waterline クエリインスタンス を実行します。
.catch(callback)
Sails v1 および Node.js v8 以降では、このメソッドを使用する代わりに
awaitを使用できます。
| 引数 | 型 | 詳細 | |
|---|---|---|---|
| 1 | filter | エラーに対してチェックされるプロパティを持つオプションの辞書です。すべてのプロパティが一致する場合、コールバックが実行されます。そうでない場合は実行されません。 | |
| 2 | callback | クエリが失敗した場合に実行される関数です。 エラーを引数として受け取ります。 |
| 引数 | 型 | 詳細 | |
|---|---|---|---|
| 1 | err | 発生したエラー、またはエラーがない場合はundefined。 |
指定されたメールアドレスを持つユーザーを検索するには
User.findOne({
email: req.param('email')
})
.then(function (user){
if(!user) { return res.notFound(); }
return res.json(user);
})
// If there was some kind of usage / validation error
.catch({ name: 'UsageError' }, function (err) {
return res.badRequest(err);
})
// If something completely unexpected happened.
.catch(function (err) {
return res.serverError(err);
});
- 可能な限り、このメソッドを呼び出す代わりに
awaitを使用することをお勧めします。- これは
.exec()の代替手段です。.then()と組み合わせることで、同じ機能を提供します。.catch()関数は、チェーン化を可能にするためにPromiseを返します。これは、チェーンされた.catch()呼び出しの複雑で(おそらく直感的ではない)動作のために、最も高度なPromiseユーザーを除いてはお勧めしません。- 詳細については、bluebird
.catch()API ドキュメントを参照してください。