在Sails.js / api / controllers中创建子文件夹

时间:2014-12-08 23:29:56

标签: node.js sails.js

这是我的问题:我想在/ api / controllers中创建一些子文件夹,以便组织我的源代码。我的问题是,只要我创建一个新文件夹,蓝图api / routes / actions就不再起作用了。

从我的所有测试中,如果我将/api/controller/UserController.js更改为/api/controller/newpath/UserController.js,我就无法再获得蓝图的美感了。

有没有办法做到这一点?

由于 灵光

4 个答案:

答案 0 :(得分:7)

你可以设置它。它有点没有文档,但您可以在控制器上设置“_config”对象

api/controllers/subFolder/YourController.js
...
module.exports = {
  _config: {
    model: 'YourModel' // case sensitive
    actions: true,
    shortcuts: true,
    rest: true
  }
}

看看这个答案 https://stackoverflow.com/a/22062367/1821723

答案 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"

希望它有所帮助!