错误的代码的顺序造成的路由错误?

我有和奇怪的错误,我只是想明白为什么。 我从我的CSS和JavaScript文件中得到了一个'不好的路线'返回。 因为它变成我所有的path是正确的,但问题是由于把我的

app.use(express.static('public')); after app.get('*', function(req, res){ res.send('Bad Route'); }); 

当我颠倒这个命令时,它解决了这个问题。 为什么这会导致错误的路由错误? 是因为操作的顺序吗? 我的app.js代码如下。

 var express = require('express'); var app = express(); var routes = require('./routes'); app.set('view engine', 'ejs'); app.use(express.static('public')); //pages are inside routes folder app.get('/', routes.index); app.get('/portfolio', routes.portfolio); app.get('*', function(req, res){ res.send('Bad Route'); }); var server = app.listen(3000, function(){ console.log('listening on port 3000'); }); 

您的中间件路由将按照它们出现在您的代码中的顺序触发。 所以如果你有一个app.get()app.static()之前匹配,那么app.get()将首先处理请求。 (可以select将请求传递到下一个中​​间件。)