【问题标题】:Properly handle a URL that matches two routes正确处理匹配两个路由的 URL
【发布时间】:2023-03-27 08:21:02
【问题描述】:

我有两个如下网址:

http://domain.com/api/locations/codeforlocation
http://domain.com/api/locations/import

在我的路由文件中,以下几行的顺序相同:

app.put('api/locations/:location', require('./api/locations.js').put);
app.put('api/locations/import, require('./api/locationsimport.js').put);

但是当我调用“http://domain.com/api/locations/import”时,它只会调用“http://domain.com/api/locations/codeforlocation

如何区分我的路径参数?

【问题讨论】:

  • 你根本不用 NodeJS 做路由。您可以在其之上的某个层执行此操作,例如(根据您的示例代码猜测)ExpressJS。

标签: node.js express routing


【解决方案1】:

切换处理程序的顺序:

app.put('api/locations/import', require('./api/locationsimport.js').put);
app.put('api/locations/:location', require('./api/locations.js').put);

路由按照它们定义的顺序执行,所以你需要先定义更具体的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多