扩展尚未创建的javascript(nodeJS)对象

时间:2014-04-26 05:43:40

标签: javascript node.js express connect middleware

我试图实现类似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,但这似乎非常低效;相反,我想要一种方法来访问res中的responsehttp对象并直接添加该功能。

另外一种解决方法可能是:如何直接访问node http response个对象,以便我可以执行以下操作:

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

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

1 个答案:

答案 0 :(得分:2)

我认为你所寻找的是这样的:

var http = require('http');
http.ServerResponse.prototype.send = function(data) {
  // ...
};


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