2012-04-20 7 views
0

expressjsでリクエストオブジェクトのプロトタイプを拡張したいが、この要求がどこに定義されているかは不明です。私はそれがhttp.ServerRequestだと思うが、私はその定義を見つけることができません。エクスプレス/ノード構成のServerRequestのプロトタイプを更新する

Connect frameworkと彼のmiddleware libsで次の...

http.ServerRequest.prototype.redirect = function(path) { } 
+0

httpはnode.jsのコアライブラリです。後のことを達成するための最善の希望は、私が恐れていた相続物 – ControlAltDel

+0

ではなくファサードを使用することかもしれません。私はそれを避けようとしていました。なぜなら、すべての開発者が新しい関数の名前を知る必要があるからです。 – Greg

答えて

0

エクスプレス自体は、このパターンin 2.*を使用して、http.IncomingMessage.prototypeには、ユーティリティメソッドです追加

var http = require('http'); 

var req = exports = module.exports = { 
    __proto__: http.IncomingMessage.prototype 
}; 

それはヴァディムBaryshevとして、しかし猿のパッチと注意するのが賢明です彼の答えで警告する。

0

ルックを行うには正しい方法は何ですか。すべてのミドルウェアは、作成後に要求および応答オブジェクトを拡張します。コアオブジェクトのプロトタイプを変更するのは、他のモジュールで予期せぬ動作につながる可能性があるためです。

var http = require('http'), 
    req = http.IncomingMessage.prototype; 

req.foo = function(bar) { 
    // Do cool stuff 
}; 

このパターンin 3.*

関連する問題