我如何扩展sails.js 库 [英] How do I extend sails.js library

查看:30
本文介绍了我如何扩展sails.js 库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想扩展sailsjs来拥有类似于rails strong params的东西即

I would like to extend sailsjs to have something similar to rails strong params i.e.

req.params.limit(["email", "password", "password_confirmation"])

req.params.limit(["email", "password", "password_confirmation"])

我已经创建了它作为附加,但我希望它自动附加到 request.params

I have created this already as an add on, but I would like it to automatically attach to the 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"]);

我将如何将其作为模块添加到框架中?

How would I go about adding this to the framework as a module?

推荐答案

我认为你可以创建一个 policy

i think you could just create a policy

// 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 文件中添加策略.该示例适用于所有控制器/操作.在上面的链接中是关于如何将其添加到特定操作的文档.

then you can add the policy in your ./config/policies.js file. the example is for all controllers/actions. in the link above is the documentation on how to add it to specific actions.

// config/policies.js
module.exports.policies = { 
'*': 'limit'
};

当然你可以调用 req.params.limit(...);如果您不希望它在您的策略中保持静态,请在您的控制器中.策略一般无非是表达中间件

of course you can do the call to req.params.limit(...); in your controller if you don't want it static in your policy. policies are in general nothing more than express middlewares

这篇关于我如何扩展sails.js 库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆