如何扩展帆.js图书馆
How do I extend sails.js library
我想扩展 sailsjs 以具有类似于 rails 强参数的东西即
req.params.limit(["email", "password", "password_confirmation"])
我已经将其创建为附加组件,但我希望它自动附加到request.params
插件:
limit = function(limiters){
params = this.all();
self = Object();
limiters.forEach(function(limiter){
if(params[limiter]){
self[limiter] = params[limiter]
}
return self;
}
请求:
req.params.limit = limit;
req.params.limit(["email", "password"]);
我将如何将其作为模块添加到框架中?
我认为您可以创建一个策略
// policies/limit.js
limit = function(limiters){
params = this.all();
self = Object();
limiters.forEach(function(limiter){
if(params[limiter]){
self[limiter] = params[limiter]
}
return self;
}
module.exports = function limit (req, res, next) {
req.params.limit = limit;
req.params.limit(["email", "password"]);
next();
};
然后,您可以在 ./config/policies.js 文件中添加策略。 该示例适用于所有控制器/操作。 上面的链接中是有关如何将其添加到特定操作的文档。
// config/policies.js
module.exports.policies = {
'*': 'limit'
};
编辑:当然,您可以调用req.params.limit(...); 在控制器中,如果您不希望它在策略中静态。 策略一般只不过是快速中间件
我看到了控制器操作、限制可能的搜索等用例。
另一方面:当您只想让您的模型不占用在创建请求中找到的未定义属性时,您可以简单地将相应模型的 schema
设置为 true:
// models/example.js
module.exports = {
schema: true,
attributes: {...}
}
全局设置:
// config/models.js
module.exports.models = {
schema: true,
...
}
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- d3.js的正式分类是什么?框架图书馆包裹
- 如何扩展帆.js图书馆
- 国际象棋.js图书馆.决定赢家和输家
- jQuery是JS库.图书馆一词的含义
- 我可以使用" Load .js"加载CSS吗?图书馆
- Node JS:通过'https:// '图书馆