Node.js express.js中的路由器优先级顺序
我想了解express.js中的顺序优先级。例如,作为下面的代码Node.js express.js中的路由器优先级顺序,node.js,express,Node.js,Express,我想了解express.js中的顺序优先级。例如,作为下面的代码 var routes = require('./routes/index'); var users = require('./routes/users'); var api = require('./routes/api'); app.use('/api', api); app.use('/users', users); app.use('/:name', function(req, res, next) {
var routes = require('./routes/index');
var users = require('./routes/users');
var api = require('./routes/api');
app.use('/api', api);
app.use('/users', users);
app.use('/:name', function(req, res, next) {
console.log('from app.js name:', req.params.name);
res.render('index', {
title: req.params.name
});
}, routes);
app.use('/', function(req, res, next) {
res.render('index', {
title: 'MainPage'
});
});
如果请求来自客户端localhost:3000/api/abc和localhost:3000/user/abc,则来自api和用户模块的响应。但是如果我发出一个像localhost:3000/myName/xyz这样的请求,应用程序模块将返回一个响应。这种行为让我关注expressjs的优先级以及路由器模块的正确顺序。为什么路由器不会混淆操作“api”、“用户”和参数“名称”。请让我清楚地了解express的功能和优先顺序。顺序是先到先得 在您的情况下,如果用户点击/api,他将从api获得响应,但如果您在
/api
之前编写/:name
路由,/:name
也将用于/api
请求
案例1:/api
将为/api
的请求提供服务
案例2:/:name
为/api
和/users
中给出的示例非常简单,不幸的是很难找到。我只是找到了它
中间件功能是按顺序执行的,因此中间件包含的顺序很重要
非常感谢@Laxmikant Dange,但如果我在api模块或用户模块中什么都不做,为什么app.use(“/”,func(){})充当服务器。。。?。它响应主页..?在ExpressJS文档中,我可以在哪里找到有关use()和get()路由的优先规则的信息。@hoan,因为没有
:name
,所以它不匹配/:name
var routes = require('./routes/index');
var users = require('./routes/users');
var api = require('./routes/api');
app.use('/api', api);
app.use('/users', users);
app.use('/:name', function(req, res, next) {
console.log('from app.js name:', req.params.name);
res.render('index', {
title: req.params.name
});
}, routes);
app.use('/', function(req, res, next) {
res.render('index', {
title: 'MainPage'
});
});
var routes = require('./routes/index');
var users = require('./routes/users');
var api = require('./routes/api');
app.use('/:name', function(req, res, next) {
console.log('from app.js name:', req.params.name);
res.render('index', {
title: req.params.name
});
}, routes);
app.use('/api', api);
app.use('/users', users);
app.use('/', function(req, res, next) {
res.render('index', {
title: 'MainPage'
});
});
app.use(function(req, res, next) {
res.send('This is the only thing that ever happens')
}
app.use(...) // never used
app.get(...) // never used
app.put(...) // never used
app.post(...) // never used