1

嗨,我是 node 和sails 的新手,同时在我的代码中做一些标准。在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>

问题:

1)如果我为所有控制器和服务文件名添加前缀,是否可以通过以下方式访问 url:

http://localhost/test/
http://localhost/test/<action>

不加前缀?

我正在考虑配置 config/routes.js 以便通过编辑如下内容来实现这一点:

'/test': {
    controller: 'PrtestController',
    action: '<action>'
},
'/test/*': {
    controller: 'PrtestController'
} 

老实说,我还没有尝试过(这只是在我对代码进行重大更改之前的一个想法,否则我可能会把它搞砸)

2)是否有可能在sails.js中有这个

PrtestController.js  >   prTestController.js

提前致谢!

编辑问题

顺便说一句,我正在为具有以下值的控制器使用默认的风帆配置:

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 将自动使用控制器 prTestController 或 prTestController:any_action 的路由是否有可能?

对于#2,是的,这就是我的意思。

非常感谢!

4

1 回答 1

1
  1. 是的,您必须编辑config/routes.js才能进行自定义路由
    如果您的控制器名为PrtestController,那么(如果已激活)蓝图将自动为您设置到host/prtest/. 要覆盖这一点,请关闭蓝图,并添加一些自定义路线。
    航线上的 Sails 文档

    如果您在理解 Sails 中的魔力时遇到困难,我建议您关闭所有蓝图,或者至少使用不同的设置。通过这样做,您必须手动配置路由和操作。当您了解蓝图的作用及其原因后,如果您想使用它,请重新打开它。

    这是一个视频教程,更详细地解释了蓝图和路线。

  2. 不明白你的意思。你想知道是否允许使用小写的控制器名称吗?如果是这样,是的,那应该不是问题。

于 2014-04-22T06:49:44.100 回答