我想向req对象原型添加一些方法,以便以后可以在每个控制器中使用这些方法。

我试着在config/bootstrap.js中这样做:

require('http').ClientRequest.prototype.permit = function(){
    console.log( this.params.all() );
};


但是我无法在任何控制器操作的req对象中访问此方法。扩展Sails的requestresponse对象的方式是什么?

最佳答案

免责声明:我是新手,但是我能够实现我认为您希望进行的以下工作。

一种可能的方法是添加文件格式的hook

api -> hooks -> request -> index.js

其中index.js看起来像:

module.exports = function request(sails) {

  function permit() {
    console.log(this.headers);
  }

  return {
    initialize: function(cb){

      sails.on('router:route', function(requestState) {
        requestState.req['permit'] = permit;
      });

      return cb();
    }
  }

};


有关帆钩的更多详细信息:

项目挂钩:http://sailsjs.org/documentation/concepts/extending-sails/hooks/project-hooks
规格:http://sailsjs.org/documentation/concepts/extending-sails/hooks/hook-specification

关于javascript - Sails.js-扩展req原型(prototype),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34545856/

10-09 17:32