【问题标题】:Extending a javascript (nodeJS) object that hasn't been created yet扩展尚未创建的 javascript (nodeJS) 对象
【发布时间】:2014-04-26 05:43:39
【问题描述】:

我正在尝试实现类似于 ExpressJS 的 res.send() 的东西,它使用了 NodeJS Http response 对象的一部分。

一个 Http 服务器是这样创建的:

res.send = function(data){
  // Here define how res.send behaves
}

var responseHandler = function(req, res){
   // req and res are passed on from the HTTP call below
   // This code is fired every time a now page is accessed on port 3000
}

http.createServer(responseHandler).listen(3000);

每次提供新页面时,我都可以将send() 函数添加到res,但这似乎效率很低;相反,我想要一种访问http 中的resresponse 对象并直接添加函数的方法。

另一种说法可能是:我怎样才能直接访问node httpresponse对象,这样我就可以做类似的事情:

var res = http.responseObject;
res.send = function(data){
   // do stuff
}

请注意,我在这里使用的是普通 NodeJS,而不是 Express(它会自动执行此操作)。

【问题讨论】:

    标签: javascript node.js express connect middleware


    【解决方案1】:

    我认为您正在寻找的是这样的:

    var http = require('http');
    http.ServerResponse.prototype.send = function(data) {
      // ...
    };
    
    
    var responseHandler = function(req, res){
      res.send('hello world');
    }
    http.createServer(responseHandler).listen(3000);
    

    【讨论】:

      猜你喜欢
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 2017-11-21
      相关资源
      最近更新 更多