0

私は現在、単純な Snake/Tron スタイルのゲームである node.js アプリを作成していますが、サーバー側とブラウザー側 (ピクセルのマップ) で使用するクラスを作成しました。ノード側の行は次のとおりです。

module.exports = Map;

しかし、これはブラウザー側では機能しません (モジュールが未定義であるというメッセージが表示されます)。そのため、マップが読み込まれず、ゲームが画面に描画されません。

私はすでにこのような行を持っていることを試みました:

if (!document)
    module.exports = Map;

しかし、これは「ReferenceError: document is not defined」でノードをクラッシュさせます。サーバー側とクライアント側で同じコードを使用する方法はありますか?

4

3 に答える 3

1

ブラウザには、node が持つ commonJS 仕様がありません。モジュール ローダーであるRequire.jsのようなものを使用してみることができます。クライアント側とnodejsの両方で使用できます。

別のオプションはBrowserifyです。

于 2012-09-06T19:26:14.217 に答える
1
if (typeof module !== 'undefined') {
  module.exports = foo;
} else {
  this.foo = foo; // or window.foo
}
于 2012-09-06T19:27:41.010 に答える
0

string.jsの場合、単純に次のようにします。

if (window) {
  //you are in browser
} else {
  // you are in Node.js
}

それが役立つことを願っています。

于 2012-09-06T19:23:31.557 に答える