【发布时间】:2017-09-29 18:53:20
【问题描述】:
在我的sails.js 应用程序中,我有两条这样的路线:
'/': {controller:'HomeController',action:'home'},
'GET /:category/:subcategory/:keyword':{controller:'SearchController',action:'index'
当我运行默认路由 (/) 时,它将始终执行此路由
GET /:category/:subcategory/:keyword.
为什么会这样??
路由文件中路由的顺序是
1)/
2)GET /:category/:subcategory/:keyword
【问题讨论】:
-
GET /:category/:subcategory/:keyword有点像GET /*/*/*所以它可能匹配你的/.. 如果你在GET /:category...中不匹配的路由上调用next,你可以颠倒顺序首先检查它。 -
所以我需要将
GET /:category/:subcategory/:keyword路线放在首位?? -
实际上,不.. 我认为这没有意义.. 呃.. 我没有真正使用过sails.js.. 但我感觉你可能想要
GET /in第一条路线。 -
现在
GET /排在第一位 -
它给你主页,但也访问 SearchController 路由?如果是这样,我敢打赌,您主页上的某些资源会意外匹配该路线。例如,如果您有一个带有
src="/images/icons/smiley.png"的图像,那将匹配您的/:category/:subcategory/:keyword路由。脚本和其他资源类似。
标签: javascript node.js express sails.js