[解決済み] パラメータを受け取るexpressjsミドルウェアの作成
2022-06-10 16:23:36
質問
パラメータを受け取ることができるミドルウェアを作成しようとしています。どのようにすればよいのでしょうか?
例
app.get('/hasToBeAdmin', HasRole('Admin'), function(req,res){
})
HasRole = function(role, req, res, next){
if(role != user.role){
res.redirect('/NotInRole);
}
next();
}
どのように解決するのですか?
function HasRole(role) {
return function(req, res, next) {
if (role !== req.user.role) res.redirect(...);
else next();
}
}
また、同じ関数のコピーを複数作らないようにしたいです。
function HasRole(role) {
return HasRole[role] || (HasRole[role] = function(req, res, next) {
if (role !== req.user.role) res.redirect(...);
else next();
})
}
関連
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】エラーです。EACCES: 権限が拒否されました、アクセス '/usr/local/lib/node_modules' 。
-
[解決済み] Passport JSのreq.isAuthenticated()はどのように実装されていますか?[クローズド]
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Expressで"? "の後にあるGETパラメータにアクセスするにはどうすればよいですか?
-
[解決済み] ExpressJS アプリケーションをどのように構成するか?
-
[解決済み】Node.js / Express.js - app.routerはどのように動作するのですか?
-
[解決済み】Expressjsのmiddlewareとapp.useの実際の意味は何ですか?
-
[解決済み] Node.js + Express.jsアプリケーションのエラー処理原則?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] create-react-app、インストールエラー("コマンドが見つからない")。
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。