0

これが完全にばかげた質問である場合はご容赦ください。しかし、私はそれを理解できません。

背景情報

Express フレームワークを使用して Node.js でアプリを作成しています。いくつかの集約単位で特定の主題に関する感情について Twitter データを分析し、これらの結果を含む GeoJSON オブジェクトをクライアントに返すように設計された URI マッピングがあります。

ここでは、データの詳細について説明します。

  • 集計単位 (米国の州) は、GeoJSON ファイルにポイントとして格納され、require呼び出しによって読み込まれます。これらのポイントは、後でリーフレット マップでマーカーを作成するために使用されます。
  • ツイートは MongoDB データベースに保存され、mongodbドライバーを使用してアクセスされます。

これは、これらの GeoJSON ポイントを変更するプロセスです。

  • GeoJSON を読み込むrequire
  • 適切なツイートについて MongoDB データベースにクエリを実行する
  • GeoJSON ファイル内のフィーチャを反復処理する
    • 結果セット内のツイートを反復処理する
      • ツイートがその機能内からのものである場合
        • 感情を分析する
        • 感情を使用して機能を分類する
        • marker.properties.class分類に設定
  • 変更された GeoJSON をレスポンスに書き込む

問題

ここに私の問題があります。ロードするGeoJSONrequireは決して変更されません。

質問

requiremutableへの呼び出しを介してデータがロードされますか? そうでない場合、変更可能にする簡単な方法はありますか?つまり、オブジェクトをコピーするよりも簡単ですか?

ボーナス質問

console.log()NodeサーバーがExpressフレームワークで実行されているときに機能しない理由を知っている人はいますか? 私はそれが以前にあったことを誓います。

4

1 に答える 1

2

モジュールはキャッシュから削除できます。あなたはただする必要があります:

delete require.cache[moduleName];

とにかく、これは最善のアプローチではありません。

コンストラクター関数をエクスポートし、必要に応じて新しいオブジェクトをインスタンス化する方がはるかに優れています。例えば:

//in geo.js
function Geo() {...}
module.exports = Geo;

//in another module
var Geo = require('./geo.js');
var geo = new Geo();
于 2012-12-10T17:43:09.137 に答える