.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 ドキュメントを参照してください。