这是我的问题:我想在/ api / controllers中创建一些子文件夹,以便组织我的源代码。我的问题是,只要我创建一个新文件夹,蓝图api / routes / actions就不再起作用了。
从我的所有测试中,如果我将/api/controller/UserController.js更改为/api/controller/newpath/UserController.js,我就无法再获得蓝图的美感了。
有没有办法做到这一点?
由于 灵光
答案 0 :(得分:7)
你可以设置它。它有点没有文档,但您可以在控制器上设置“_config”对象
api/controllers/subFolder/YourController.js
...
module.exports = {
_config: {
model: 'YourModel' // case sensitive
actions: true,
shortcuts: true,
rest: true
}
}
答案 1 :(得分:7)
2016年1月更新
从版本0.10.0开始,你绝对可以做到这一点。
控制器标识是其路径,在您的情况下为newPath/UserController
。因此,自定义路线config/routes.js
将类似于:
'GET /newPath/user': 'newPath/UserController'
自动操作仍然有效。您还可以使用sails generate controller newPath/user
创建此类控制器。
答案 2 :(得分:1)
您可以如下配置route.js
//application
'post /:api_key/applications' : 'Threescale.Application.create',
'get /:api_key/check_api_key' : 'Threescale.Application.check',
'get /:token/manager_list_accounts' : 'Threescale.Account.list',
'put /:token/manager_approve_account' : 'Threescale.User.activate',
在api /控制器下,您可以按以下方式管理子文件夹和操作:
Threescale
Application
- create.js
- check.js
Account
- list.js
User
- activate.js
希望这对您有帮助!
答案 3 :(得分:-2)
你是对的。 虽然你可以尝试这种方法,但它并不是开箱即用的工作:
在你models/User.js
设置identity: "newpath/user"
希望它有所帮助!