まともなオブジェクトサイズを持つ2つの変数(req、res)を共有する、クラスを作成するためのクリーンな方法またはコードを適切に構造化するための何らかの方法を実現するための最良の方法(パフォーマンス、メモリに関して)は何でしょうか。
はい、Node.js を使用する人にとっては req 変数と res 変数ですが、関係ありません。
これは私がこれまでに試したことです:
function Client(req, res){
var self = this;
self.req = req;
self.res = res;
route.call(self);
handleRoute.call(self);
handleRequestData.call(self);
}
function route(){
var self = this;
self.req.route = // ...
}
function handleAuth(){
var self = this;
self.req.auth = // ...
}
function handleRequestData(){
var self = this;
self.req.data = // ...
}
req と res はメソッド、プロパティを持つかなりまともなオブジェクトであると述べたので、改善できるかどうか疑問に思っています。.call(self) はインスタンスを通過するので、それが最も効果的な方法でしょうか?
また、「var self = this;」の使用も好きではありません。ずっと、駄目です。
ところで、Coffeescript は使いたくありません。
解決策 1. (req と res を大量に通過するため失敗します)
ファイル1.client.jsに到達したと仮定しましょう
var Client = {
route: function(req, res){},
auth: function(req, res, callback){ callback(req, res); },
getData: function(req, res, callback){ callback(req, res); } // async
}
ファイル2.main.js
var client = require('./client.js');
client.route(req, res); // fine because this is syncronous.
// This is where the problem is, massive passing through req and res parameters.
client.auth(req, res, function(req, res){
client.getData(req, res, function(req, res){
// Do something...
});
});