当我向http://localhost:4101/endpoint/field
发出请求时,始终会记录endpoint/:id
。
为什么不记录endpoint/field
?
我理解:id
是一个路径参数,可以是任何内容,但我明确表示field
应该以不同的方式处理。
'use strict';
var express = require('express');
var app = express();
var PORT = 4101;
app.route('/endpoint/:id')
.get(function(req, res) {
console.log('endpoint/:id');
});
app.route('/endpoint/field')
.get(function(req, res) {
console.log('endpoint/field');
});
app.listen(PORT, function(err) {
if (err) {
console.log('err on startup ' + err);
return;
}
console.log('Server listening on port ' + PORT);
});
答案 0 :(得分:4)
路线的顺序很重要。使用第一个有效路线。
/endpoint/:id
对/endpoint/field
有效,因为:id可以是任何
所以你需要切换订单。
另见Node.js Express route naming and ordering: how is precedence determined?