私はexpress.js / node.jsを学んでおり、javascriptプロトタイプモデルについて十分に理解していますが、十分ではありません。したがって、express.js のルーティング メカニズムでミドルウェアをスタックする方法について、少し混乱しています。
このコードがあるとしましょう
function andRestrictTo(role) {
return function(req, res, next) {
req.authenticatedUser.role == role
? next() : next(new Error('Unauthorized'));
}
}
app.del('/user/:id', loadUser, andRestrictTo('admin'), function(req, res){
res.send('Deleted user ' + req.user.name);
});
andRestrictTo(role) はミドルウェアを返すため、ルーティング チェーンで実行されます。でも:
req、res、next パラメーターは、返された関数のどこから来ますか? 「チェーン」はどういうわけかそれをキューに入れ、パラメーターを割り当てていると思いますが、これは少しあいまいすぎて理解を深めることができません...
次のパラメーターとして発生するエラーで何が起こっていますか? エラーは単にミドルウェア チェーンを壊しますか?
制限メカニズムを別のファイル/モジュール (セキュリティ フレームワークなど) にパッケージ化したい場合、どのようにすればよいですか?
誰かが基本的なアイデアを指摘できればクールだろう:)