2012-01-09 17 views
1

モジュールを実装する方法getterとsetterの2つの関数を公開してnodejにメンバーデータを取得して設定する 'test'と言うと、Nodejsモジュールの実装

トリックは、データがモジュールからセッターを経由して設定されているが、我々は、REQとRESオブジェクトを登録したら、「」「テスト」の上に「試験」のゲッターを経由して「b」をモジュールにアクセスできる必要があります

シナリオは、あると言いますhttpリクエストの 'テスト'をインデックスから呼び出すと、require( 'test')を宣言するだけでアプリケーションの他のすべてのモジュールにアクセスできるようになります。

nodejsでこれは可能ですか?

+0

私は間違っていないよ場合は、それを実現するための別の方法を見つけました。 module.exports = new test()を宣言し、 'test'モジュールをjavascriptクラスとして実装します。これは、ノードが最初に要求した後、常にすべてのさらなるrequire( 'test')にキャッシュされたオブジェクトを返すためです。だから我々はキャッシュされたオブジェクトの上にゲッターとセッターを使用することができます – Tamil

答えて

2

reqresは各ページリクエストでアクセスできるため、グローバル変数を設定しても、これを達成することはできません。グローバル変数として設定すると、競合状態が発生します。

これを達成する唯一の方法は、reqとresをそのモジュールにパラメータとして渡すことです。

例:

app.js

var http = require('http'); 
http.createServer(function (req, res) { 
    require('./sample')(req, res); 
}).listen(1337, "127.0.0.1"); 

sample.js

module.exports = function (req, res) { 
    // do stuff with req and res here 
} 
+0

ありがとう.. – Tamil

関連する問題