Jak odebrać wszystkie zarejestrowane trasy ekspresem?
Mam aplikację internetową zbudowaną przy użyciu Node.js i Express. Teraz chciałbym wymienić wszystkie zarejestrowane trasy z odpowiednimi metodami.
Np. Jeśli się spełniłem
app.get('/', function (...) { ... });
app.get('/foo/:id', function (...) { ... });
app.post('/foo/:id', function (...) { ... });
Chciałbym otrzymać obiekt (lub coś równoważnego temu), na przykład:
{
get: [ '/', '/foo/:id' ],
post: [ '/foo/:id' ]
}
Czy to możliwe, a jeśli tak, to w jaki sposób?
UPDATE:
w międzyczasie utworzyłem pakiet npm o nazwie
get-routes
https://www.npmjs.com/package/get-routes
który pobiera trasy z danej aplikacji, co rozwiązuje ten problem. Obecnie obsługiwany jest tylko Express 4.x, ale myślę, że na razie jest to w porządku. Po prostu FYI.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
24 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
ekspresowe 3.x
>
Ok, znalazłem to sam ... to po prostu :-)
express 4.x
>
Aplikacje
http://expressjs.com/4x/api.html#express
zbudowany za pomocą
Routery
http://expressjs.com/4x/api.html#router
-zbudowany z
Uwaga
: stos zawiera również funkcje oprogramowania pośredniego, należy go przefiltrować, aby uzyskać
tylko „trasy”.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Użyłem express.Router () i zarejestrowałem moje trasy w ten sposób:
Zmieniłem nazwę pliku document.js na apiTable.js i dostosowałem go w następujący sposób:
wtedy nazywam to w moim server.js w ten sposób:
Wynik wygląda następująco:
To tylko przykład, ale może być pomocny ... Mam nadzieję ...
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Możesz się skontaktować:
Debugowanie ExpressJS
https://expressjs.com/en/guide/debugging.html
i
debugowanie
https://www.npmjs.com/package/debug
.
Anonimowy użytkownik
Potwierdzenie od:
Doug Wilson
https://github.com/dougwilson
na
wyrażaj pytania na github
https://github.com/expressjs/e ... 08... Brudne, ale działa jak zaklęcie.
Produkuje
https://i.stack.imgur.com/CkUrX.png
Anonimowy użytkownik
Potwierdzenie od:
https://www.npmjs.com/package/ ... oints
działa całkiem nieźle.
Przykład
Za pomocą:
Wyjście:
Anonimowy użytkownik
Potwierdzenie od:
Dzienniki produkcyjne:
Zamieniłem to w NPM
https://www.npmjs.com/package/express-list-routes
https://www.npmjs.com/package/express-list-routes
Anonimowy użytkownik
Potwierdzenie od:
JSON wyjście
>
wygląda tak:
wyjście ciągu
>
wygląda tak:
są oparte na odpowiedzi
@corvid's
https://stackoverflow.com/a/35089029/8472592
mam nadzieję że to pomoże
Anonimowy użytkownik
Potwierdzenie od:
UWAGA to działa dla mnie, ponieważ deklaruję moje trasy w określonym pliku tras (funkcji), który jest przekazywany do obiektu aplikacji, np .:
To pozwala mi przekazać inny obiekt „aplikacji” z fałszywą funkcją użycia i mogę uzyskać WSZYSTKIE trasy. To działa dla mnie (usunięto niektóre sprawdzanie błędów dla jasności, ale nadal działa dla przykładu):
Ten kompletny przykład (z kilkoma podstawowymi routerami CRUD) został właśnie przetestowany i wydrukowany:
Za pomocą
cli-table
https://www.npmjs.com/package/cli-table, Mam coś takiego:
To kopie cię w dupę.
Anonimowy użytkownik
Potwierdzenie od:
Express 4
>
Dany
Express-4
konfiguracje końcowe i routery zagnieżdżone
<pre class="lang-js prettyprint-override">
Rozwijając odpowiedź @ caleb, możliwe jest rekursywne pobieranie i sortowanie wszystkich tras.
Do podstawowego wyjścia string.
https://i.stack.imgur.com/9Xt0A.png
Aktualizacja 1:
>
Ze względu na wewnętrzne ograniczenia Express 4 nie jest możliwe zamontowanie aplikacji i zamontowanie routerów. Na przykład nie jest możliwe pobranie tras z tej konfiguracji.
Anonimowy użytkownik
Potwierdzenie od:
edycja: ulepszenia kodu
Anonimowy użytkownik
Potwierdzenie od:
<pre class="lang-js prettyprint-override">
Oto demo:
https://glitch.com/edit/%23%21 ... odejs
https://glitch.com/edit/%23%21 ... odejs
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Ekspresowa inicjalizacja routera
Importowanie niestandardowego kontrolera
Trasy użytkowników
Export Route API
Wyjście
Anonimowy użytkownik
Potwierdzenie od:
O/P:
Anonimowy użytkownik
Potwierdzenie od:
Może to pomoże ...
Anonimowy użytkownik
Potwierdzenie od:
PROSTE WYJŚCIE KODU
Anonimowy użytkownik
Potwierdzenie od:
nie najpiękniejszy ... ale zagnieżdżony i spełnia swoje zadanie
zwróć też uwagę na 20 tam ... Zgaduję, że nie będzie normalnej trasy z 20 metodami .. więc dochodzę do wniosku, że to wszystko ..
Anonimowy użytkownik
Potwierdzenie od:
https://i.stack.imgur.com/iNnKn.png
https://www.npmjs.com/package/ ... talog
https://www.npmjs.com/package/ ... logue
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
https://github.com/ErisDS/middleware-stack-printer
https://github.com/ErisDS/middleware-stack-printer
Wyświetla coś w rodzaju drzewa, na przykład:
Anonimowy użytkownik
Potwierdzenie od: