Middlewares not being called when using wildcard "*"
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- aws, javascript, node.js
調査の方向性
api.use のミドルウェア登録とワイルドカードパスの処理から始め、再現用として記載されている /data/* の authorize ミドルウェアを使用します。この登録が存在する場合に、ミドルウェアの順序とパスのマッチングがどのように動作するかを検証します。一般的なミドルウェアが引き続き実行され、authorize が /data/* に限定されたままであれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Lambda api: 0.10.1
I have this API:
const api = require('lambda-api')({base: 'v2'})
, middleware = require('../utils/middleware')
, LiveblogApi = require('../apis/liveblogApi');
//apply middlewares
api.use(middleware.addCorsHeaders);
api.use(middleware.logRequest);
api.use(['/data/*'], middleware.authorize);
api.use(middleware.populateCommonHeaders);
api.use(middleware.errorHandler);
api.post('/data/pbp/:eventId', async (req, res) => {
let response = await LiveblogApi.addPost(req.params.eventId, req.body);
return res.json(response);
});
api.post('/data/pbp/:eventId/:key', async (req, res) => {
let response = await LiveblogApi.setPost(req.params.eventId, req.params.key, req.body);
return res.json(response);
});
api.delete('/data/pbp/:eventId/:key', async (req, res) => {
let response = await LiveblogApi.deletePost(req.params.eventId, req.params.key);
return res.json(response);
});
api.post('/data/drafts/:eventId', async (req, res) => {
let response = await LiveblogApi.addDraft(req.params.eventId, req.body);
return res.json(response);
});
api.post('/data/drafts/:eventId/:key', async (req, res) => {
let response = await LiveblogApi.setDraft(req.params.eventId, req.params.key, req.body);
return res.json(response);
});
api.delete('/data/drafts/:eventId/:key', async (req, res) => {
let response = await LiveblogApi.deleteDraft(req.params.eventId, req.params.key);
return res.json(response);
});
api.delete('/data/comments/:eventId/:postId/:key', async (req, res) => {
let response = await LiveblogApi.deleteComment(req.params.eventId, req.params.postId, req.params.key);
return res.json(response);
});
module.exports = api;
You can see that I have another JS module that holds all middlewares. When I deploy it like this, it looks like only the authorize middleware is being called.
If I remove the line:
api.use(['/data/*'], middleware.authorize);
Then the other middlewares are called normally.
In old versions of the lib this didn't happen, I just updated to the newest version and deployed again.
My workaround:
api.use(middleware.authorize); which has the same effect as before.
- 主要言語
- JavaScript
- スター
- 1.5k
- フォーク
- 127
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jeremydaly/lambda-api のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
jeremydaly/lambda-api#356 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
jeremydaly/lambda-api#270 ·
-
Logger Output再び着手できるかも @naorpeled が 913 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
jeremydaly/lambda-api#259 · コメント 1 件 · 担当者 1 名 ·
-
Is it possible to disable versioning?対応中かも @naorpeled が 107 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
jeremydaly/lambda-api#257 · コメント 5 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
jeremydaly/lambda-api#251 · コメント 1 件 ·
jeremydaly/lambda-api の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/rocketmq-dashboard#7242 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
mihai-vlc/sublime-jsfmt#56 ·
-
Bug v3
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
swc-project/swc#12576 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 1 日以内に返信