node.js - 正确处理匹配两个路由的 URL

标签 node.js express routes

我有两个如下所示的网址:

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

如何区分我的路径参数?

最佳答案

切换处理程序的顺序:

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

路由按照定义的顺序执行,因此您需要首先定义更具体的路由。

关于node.js - 正确处理匹配两个路由的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26648732/

相关文章:

javascript - 在 React 中 - 如何从 .sh(Shell 脚本)文件中获取值?

javascript - 在javascript中的require中传递变量

ruby-on-rails-3 - 更改默认路由名称

ruby-on-rails - 如何根据域名有条件地强制使用 SSL?

go - GoLang 上的反射错误 - 参数太少

Node.js npm 安装 ETIMEDOUT

node.js - 运行快速代码时出现 ECONNREFUSED 错误

node.js - 如何确定 Node.js 发送 HTTP 响应正文所花费的时间?

node.js - res.cookie(名称,值);不设置 cookie (Express/NodeJs)

node.js - 类型错误 : Cannot use 'in' operator to search for '_id' in male