Javascript 由代码顺序导致的错误路由错误?
我犯了一个奇怪的错误,我只是想知道为什么。我从css和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
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与内容的变化。