/ / In Express, co dokładnie robi app.router? - node.js, express

W programie Express, co dokładnie robi app.router? - node.js, express

Kiedy tworzę przykładową aplikację Express przy użyciu binarnego wyrażenia, kod bootstrap ma następujące linie:

...

var app = express();
...
app.use(app.router);

Nie znalazłem wiele informacji o app.router. Myślałem, że jest to oprogramowanie pośrednie, które obsługuje reguły routingu (app.get (), app.post () itp.), Ale reguły te są również wykonywane po usunięciu app.use (app.router); linia.

Jakie jest dokładne przeznaczenie tego oprogramowania pośredniczącego?

Odpowiedzi:

15 dla odpowiedzi № 1

To jest z przewodnika Express 2.x. http://expressjs.com/2x/guide.html

"Zwróć uwagę na użycie app.routera, który można (opcjonalnie) wykorzystać do zamontowania trasy aplikacji, w przeciwnym razie pierwsze wywołanie app.get (), app.post (), itp. zamontuje trasy. "

Podejrzewam, że dotyczy to również Express 3.x.


36 dla odpowiedzi nr 2

W Express 3.x app.router jest rozszerzoną wersją podłącz router pośredni. Jak powiedział hector, to właśnie Express obsługuje obsługę zapytań zarejestrowanych przy pomocy app.get, app.postitp.

Jeśli nie zadzwonisz app.use(app.router) jawnie, a następnie express, wywoła to pośrednio przy pierwszym użyciu app.get(...), app.post(...)itp. Jednak możesz chcieć .use jawnie, ponieważ wtedy wybierasz kolejność wszystkich programów pośredniczących.

app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
// app.get, app.post, etc called before static folder
app.use(app.router);
app.use(express.static(path.join(__dirname, "public")));

Zobacz, jak router jest pobierany ze źródła Express 3 tutaj.

Zauważ, że Express 4 nie wymaga aplikacji.


0 dla odpowiedzi № 3

Ta metoda została uznana za przestarzałą

dlaczego używamy routera ... ponieważ musimy podłączyć naszą aplikację podrzędną do naszej głównej aplikacji.