Nested register and wildcards sometimes mess up
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- api
Direzione di ricerca
Inizia da lib/request.js in REQUEST.parseRequest e da index.js in API.run, quindi riproduci le route register annidate mostrate nell’issue. Verifica che la route GET venga accettata insieme alle route DELETE e PUT e aggiungi o aggiorna il test di routing pertinente; nell’issue non è indicato alcun file di test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm using register() on multiple depths, to illustrate it's something like this:
api.js:
const api = require('lambda-api')({
base: '/api'
});
api.register(require('./api/user'), { prefix: '/me' });
api/user.js:
module.exports = (api, opts) => {
api.register(require('./user/app'), { prefix: '/apps' });
api/user/app.js:
module.exports = (api, opts) => {
api.get(':app/data', async (req, res) => {
// code
});
api.get(':app/data/:scope', async (req, res) => {
// code
});
api.get(':app/data/:scope/:key', async (req, res) => {
// code
});
api.delete(':app/data/user/:key', async (req, res) => {
// code
});
api.put(':app/data', async (req, res) => {
// code
});
api.put(':app/data/user/:key/:value', async (req, res) => {
// code
});
}
When I do a GET '/api/me/apps/myapp/data/user' which should match the route ':app/data/:scope/:key' however it generated this error:
MethodError: Method not allowed
at REQUEST.parseRequest (/var/task/node_modules/lambda-api/lib/request.js:247:13)
at API.run (/var/task/node_modules/lambda-api/index.js:220:21)
at Runtime.module.exports.handle [as handler] (/var/task/functions/controller/api.js:17:22)
at Runtime.handleOnce (/var/runtime/Runtime.js:66:25) {
method: 'GET',
path: '/api/me/apps/myapp/data/user'
}
When rendering a full list of routes, this is returned:
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ PUT │ /api/me/apps/:app/data ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ GET │ /api/me/apps/:app/data ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ DELETE │ /api/me/apps/:app/data/user/:key ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ PUT │ /api/me/apps/:app/data/user/:key/:value ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ GET │ /api/me/apps/:app/data/:scope ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ GET │ /api/me/apps/:app/data/:scope/:key ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
So I'd say it should work just fine however it doesn't. However when I remove the "DELETE" and "PUT" methods from code, the GET route starts working. So it seems like the matching doesn't fully work when using nested routes.
- Lingua principale
- JavaScript
- Stelle
- 1.5k
- Fork
- 127
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jeremydaly/lambda-api
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
jeremydaly/lambda-api#356 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
jeremydaly/lambda-api#270 ·
-
Logger OutputForse di nuovo libera @naorpeled l’ha presa 902 giorni fa e non c’è nessuna pull request aperta. Aperta
jeremydaly/lambda-api#259 · 1 commento · 1 assegnatario ·
-
Is it possible to disable versioning?Forse già presa @naorpeled l’ha presa 97 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
jeremydaly/lambda-api#257 · 5 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
jeremydaly/lambda-api#251 · 1 commento ·
Tutte le issue di jeremydaly/lambda-api
Issue simili
-
[BUG] Multi-day events show "Ended" while still in progressForse già presa @tarunagnihotri534 l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
data-umbrella/du-event-board#231 · 2 commenti ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
NaturalIntelligence/fast-xml-parser#888 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
USACE/chart-docs#766 ·
-
bug callouts regression revealjs
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
quarto-dev/quarto-cli#15014 ·
I maintainer di solito rispondono entro 1 giorno