0

node.js の任意のコードでそれを使用して複数回呼び出すことができるメソッドをエクスポートするモジュールを作成しています。このメソッドは通常、ビューから呼び出され、いくつかの html/css/js を出力します。ただし、このhtml/css/jsの一部は、ページごとに1回だけ出力する必要があるため、モジュールがリクエストごとに初めて呼び出されたときにのみ出力したいと思います。モジュールが初めて呼び出されたときに実行できますが、モジュールのメソッドは、サーバーが起動している間、いくつかのリクエストで数回呼び出すことができるため、特定のコードをページごとに 1 回だけ実行したいと考えています。

さらに、ユーザーが自分のメソッドに渡す必要があるものをできるだけ少なくしながら、これを行いたいと考えています。サーバーを作成するときにリクエストオブジェクトを渡すと、メソッドが既に呼び出されているかどうかを示す変数をそこに入れることができると思います。理想的には、それも避けたいと思います。モジュール内から次のようなことを考えています。

var http = require('http');
http.Server.on('request', function(request, response){
    console.log('REQUEST EVENT FIRED!');
    // output one-time css
});

ただし、これは機能しません。最初に呼び出されたスクリプトで作成された/作成されたサーバーエミッターを実際に指していないためだと思います。私はnode.jsが初めてなので、アイデア、手がかり、または助けをいただければ幸いです。ありがとう!

4

2 に答える 2

0

あなたの「問題」を完全に理解しているかどうかはわかりませんが、あなたが達成しようとしていることは、Node.js を使用して Web アプリケーションを構築するように思えます。Node で利用可能な Web フレームワークの 1 つを使用して、車輪の再発明 (ルーティングの作成、静的ファイルの提供などを自分で行う) を回避できるようにする必要があると思います。

Express フレームワークは、開始するのに適した場所です。インターネット上にはたくさんのチュートリアルがあり、強力なコミュニティがあります: http://expressjs.com/

于 2013-09-12T16:51:35.830 に答える
0

リクエストに変数を設定することは、受け入れられているパターンです。または、リクエストを関数に渡したくない場合は、レスポンスで。

あなたができるもう1つのことは、実際、あなたが書いているように、アプリにミドルウェアを追加させ、そのミドルウェアにそのことを出力させることです。

于 2013-09-12T16:52:05.173 に答える