2012-12-18 14 views
5

Czy istnieje sposób zarejestrowania wywołania funkcji express.js app.get() o niższym priorytecie?Niskie pierwszeństwo Express.js app.get ("/ route");

na przykład

app.get('*', function(req, res) {}); 
app.get('/page', function(req, res) {}); 

Czy istnieje sposób, aby określić niższy priorytet na tej pierwszej rozmowy tak, że jest na dole w wyszukiwarce trasy, dzięki czemu później zwane ścieżki należy sprawdzić najpierw, tak skutecznie, jakby pierwszy wiersz kodu został wykonany po drugiej linii kodu?

+3

kolejności, w jakiej zostały wymienione trasy jest ich priorytetem * *. Umieść trasy o niższym priorytecie na dole. –

Odpowiedz

6

Właśnie rzuciłem okiem na kod źródłowy Express i wydaje się, że nie można ustawić żadnego priorytetu podczas dodawania tras. Trasy są zawsze dopasowane kolejnością tworzenia. W twoim przykładzie najpierw spróbuje dopasować '*', a następnie '/page'.

Można jednak zapytać Express do wznowienia dopasowanie po zakończeniu:

 
app.get('*', function (req, res, next) { 
    // run some tests on the request 
    // ... 

    // finally, resume matching 
    next(); 
});