我是sails framework的新手。我使用风帆0.12(在cmd v0.11.5上)。
我想仅为特定控制器覆盖蓝图操作。因为我在我的控制器中有覆盖配置如下:
_config:{ defaultLimit : 3 , rest:true,actions:true,shortcuts:true },
但它不起作用,它采用blueprint.js的默认配置。
so.how我可以根据控制器更改它们吗?
答案 0 :(得分:0)
Sails具有覆盖蓝图配置的良好功能。
请参阅此链接以覆盖
http://sailsjs.org/documentation/reference/blueprint-api#?overriding-blueprints
答案 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' },
这通常会更好,因为您可以使用动作。