Javascript 由代码顺序导致的错误路由错误?

Javascript 由代码顺序导致的错误路由错误?,javascript,node.js,express,Javascript,Node.js,Express,我犯了一个奇怪的错误,我只是想知道为什么。我从css和Javascript文件中得到了一个“错误的路由”返回。当它转向时,我的所有路径都是正确的,但问题是由于我的 app.use(express.static('public')); after app.get('*', function(req, res){ res.send('Bad Route'); }); 当我改变顺序时,它解决了这个问题。为什么这会导致错误的路由?是因为操作顺序吗?下面是我的app.js代码 var expr

我犯了一个奇怪的错误,我只是想知道为什么。我从css和Javascript文件中得到了一个“错误的路由”返回。当它转向时,我的所有路径都是正确的,但问题是由于我的

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.static()
之前有一个匹配的
app.get()
,那么
app.get()
将首先处理请求。(它可能会选择将请求传递到下一个中间件。)

好的,我想这就是发生的情况。但我不确定文档中是否有这样的说明。它在。可能会更清楚。如果是这样,考虑分叉和提交PR与内容的变化。