快递路线参数说明
Express route parameter clarification
我正在设置 Express 路由,我想了解一下如何正确使用参数。一开始我是这么试的,以为我传过来的参数只要调用id
或者english
,router就知道选择哪条路由了。这不能正常工作:
myRoute.route('/nouns/:id').get((req, res) => {
...
})
myRoute.route('/nouns/:english').get((req, res) => {
...
})
我已经将路由更改为这个,有效:
myRoute.route('/nouns/id/:id').get((req, res) => {
...
})
myRoute.route('/nouns/english/:english').get((req, res) => {
...
})
这是正确的语法吗?我问是因为两次使用参数名称似乎是多余的 (id/:id
, english/:english
)?
参数的工作方式使您可以拥有动态路由。看例子:
Route: /nouns/id
Matches: /nouns/id
Route: /nouns/english
Matches: /nouns/english
Route: /nouns/:id
Matches: /nouns/a, /nouns/b, /nouns/c, /nouns/foobar, etc...
所以有了参数,就意味着任何东西都可以存在,而且还可以让你得到它的值。如果你只是想要某个路由,那么就不需要参数了。
参见:https://expressjs.com/en/guide/routing.html#route-parameters
我正在设置 Express 路由,我想了解一下如何正确使用参数。一开始我是这么试的,以为我传过来的参数只要调用id
或者english
,router就知道选择哪条路由了。这不能正常工作:
myRoute.route('/nouns/:id').get((req, res) => {
...
})
myRoute.route('/nouns/:english').get((req, res) => {
...
})
我已经将路由更改为这个,有效:
myRoute.route('/nouns/id/:id').get((req, res) => {
...
})
myRoute.route('/nouns/english/:english').get((req, res) => {
...
})
这是正确的语法吗?我问是因为两次使用参数名称似乎是多余的 (id/:id
, english/:english
)?
参数的工作方式使您可以拥有动态路由。看例子:
Route: /nouns/id
Matches: /nouns/id
Route: /nouns/english
Matches: /nouns/english
Route: /nouns/:id
Matches: /nouns/a, /nouns/b, /nouns/c, /nouns/foobar, etc...
所以有了参数,就意味着任何东西都可以存在,而且还可以让你得到它的值。如果你只是想要某个路由,那么就不需要参数了。
参见:https://expressjs.com/en/guide/routing.html#route-parameters