我是节点&航行,同时在我的代码中做一些标准。在sails.js中我现在有这个,例如下面的
api/
controllers/
TestController.js
services/
TestServices.js
大多数情况下,我只能使用这种URL格式来访问视图:
http://localhost/test/
http://localhost/test/<action>
如果我在文件名中添加一些前缀,它将会是这样的:
api/
controllers/
PrtestController.js
services/
PrtestServices.js
右边的URL应该可以通过以下方式访问:
http://localhost/prtest/
http://localhost/prtest/<action>
问题:
http://localhost/test/
http://localhost/test/<action>
没有添加前缀?
我正在考虑配置config / routes.js,以便通过编辑类似的东西来实现这一点:
'/test': {
controller: 'PrtestController',
action: '<action>'
},
'/test/*': {
controller: 'PrtestController'
}
老实说,我还没有尝试过(在我对代码进行重大修改之前,这只是一个想法,否则我可能会搞砸了)
PrtestController.js > prTestController.js
提前致谢!
顺便说一下,我使用默认的sails配置来控制值为:
的控制器blueprints: {
actions: true,
rest: true,
shortcuts: true,
prefix: ''
...
} 示例:(我的routes.js看起来像这样)
'/test' : 'prTestController',
'/test/action2' : 'prTestController:action2',
'/test/action3' : 'prTestController:action3',
'/test/action4' : 'prTestController:action4',
'/test/action5' : 'prTestController:action5',
'/test/action6' : 'prTestController:action6',
'/test/action7' : 'prTestController:action7',
'/test/action8' : 'prTestController:action8',
'/test/action9' : 'prTestController:action9'
如果url有/ test或/ test / any_action的路由是否可以分别自动使用controller prTestController或prTestController:any_action?
对于#2,是的,这就是我的意思。
非常感谢!
答案 0 :(得分:1)
是的,您必须编辑config/routes.js
才能执行自定义路由。
如果您的控制器名为PrtestController
,那么(如果已激活)蓝图将自动为您设置host/prtest/
的路线。要覆盖它,请关闭蓝图,然后添加一些自定义路线
Sails docs on routes
如果您在理解Sails中的魔法时遇到困难,我建议您关闭所有蓝图,或者至少使用不同的设置。通过执行此操作,您必须手动配置路由和操作。当您了解蓝图的作用及其原因时,如果您想使用蓝图,请将其重新打开。
以下是video tutorial更详细地解释蓝图和路线。
不确定你的意思。你想知道是否允许小写的控制器名称?如果是的话,是的,这应该不是问题。