node.jsのレスポンスやリクエストに新しいメソッドを追加したい。
どうすればより効率的に行うことができますか?
これがexpress.jsでどのように行われるか理解できません
node.jsのレスポンスやリクエストに新しいメソッドを追加したい。
どうすればより効率的に行うことができますか?
これがexpress.jsでどのように行われるか理解できません
JavaScript であるため、これを行う方法は多数あります。Express で最も妥当と思われるパターンは、初期のミドルウェアで各リクエスト インスタンスに関数を追加することです。
//just an example
function getBrowser() {
return this.get('User-Agent');
}
app.use(function (req, res, next) {
req.getBrowser = getBrowser;
next();
});
app.get('/', function (req, res) {
//you can call req.getBrowser() here
});
Express.js では、これは http.IncomingMessage のプロトタイプに追加の機能を追加することによって行われます。
これは、「モンキー パッチ」または「フリーダム パッチ」と呼ばれることもあります。これが素晴らしいか恐ろしいかについては、意見が異なります。上記の私のアプローチはより慎重であり、node.js プロセス内で実行されている他のコードに意図的に干渉する可能性が低くなります。独自のものを追加するには:
var http = require('http');
http.IncomingMessage.prototype.getBrowser = getBrowser; //your custom method