覆盖Sails.js中控制器中的每个控制器的蓝图配置

时间:2016-11-11 10:05:04

标签: javascript node.js object model-view-controller sails.js

我是sails framework的新手。我使用风帆0.12(在cmd v0.11.5上)。

我想仅为特定控制器覆盖蓝图操作。因为我在我的控制器中有覆盖配置如下:

_config:{ defaultLimit : 3 , rest:true,actions:true,shortcuts:true },

但它不起作用,它采用blueprint.js的默认配置。

so.how我可以根据控制器更改它们吗?

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

为此,您需要创建一个与您的模型同名的Controller。在那里,您可以启用/禁用特定模型的蓝图路线并覆盖端点。

例如:

// if you have an User model at api/models/User.js
// the controller below must be at api/controllers/UserController.js

/**
 * UserController
 *
 * @description :: Server-side actions for handling incoming requests.
 * @help        :: See https://sailsjs.com/docs/concepts/actions
 */

module.exports = {

  _config: {
    rest: false
    // It's possible to disable some route, but you can't enable them if your
    // main configuration is set "true". (Sorry, I really don't know why of this)...
    // the main configuration file is located at: config/blueprints.js
  }

};

此外,它们没有“ defaultLimit”配置。要覆盖端点,您只需实现该方法:

// api/controller/UserController.js
/**
 * UserController
 *
 * @description :: Server-side actions for handling incoming requests.
 * @help        :: See https://sailsjs.com/docs/concepts/actions
 */

module.exports = {

  create: function (req, res) {
    console.log('custom create method called!');
    // res.ok(populatedRecord);
  },

  find: function (req, res) {
    console.log('custom find method called!');
  }
};

答案 2 :(得分:0)

另一种覆盖蓝图端点的方法是创建到该端点的新路由:

// config/routes.js
'POST /user': { action: 'create-user' },

这通常会更好,因为您可以使用动作。