javascript - 带有可选参数的路由会阻止其他路由加载
问题描述
我的基于 express 的 nodejs 应用程序中有 3 条路线。
app.get('/', function (req, res) {
//
})
app.get('/findOne', function (req, res) {
//
})
app.get('/getFour', function (req, res) {
//
})
我在索引路由中有一个查询参数“product”,可用作 /?product=XXXX。一切都按预期工作正常。
现在我将产品作为可选变量添加到索引路由
app.get('/:product?', function (req, res) {
//
})
索引路由正在工作,但其他路由抛出奇怪的 jquery 错误。
未捕获的语法错误:意外的令牌:jquery.min.js:2
解决方案
似乎带有可选参数的索引路由位于路由列表的顶部,将首先匹配,以防止匹配以下特定路由。因此,您必须先放置特定路线,然后再添加带有可选参数的路线。
推荐阅读
- php - 如何使用 PHP 显示表格列?
- java - 在 Firebase (Android) 中同时更新多个节点中的多个字段
- apache - 带有主域的 Nginx 80 工作正常,为什么带有子域的 Apache2 8080 不起作用(来自 80 端口的 400 个错误请求)?
- entity-framework - 防止将默认值用于 Entity Framework Core 中的键?
- elasticsearch - Elasticsearch 抛出 Elasticsearch.Net.UnexpectedElasticsearchClientException
- c++ - 我的递归有问题吗?
- spring-boot - 运行 Springboot 测试用例时如何避免加载可自动配置的类
- docker - 如何在 Kubernetes Dashboard 中配置基于 Kubeconfig 的登录
- javascript - JavaScript中如何计算变量占用的内存?
- powershell - 如何同时安装 Powershell 模块?