[解決済み] NodeでJSONLoaderを使用する場合、XMLHttpRequestが定義されていない
2022-02-18 17:01:56
質問
Three.jsでゲームを書いているのですが、マルチプレイヤーゲームとして、チートを防ぐためにサーバーサイドでクライアントの位置を確認する必要があります。現在、サーバーでモデルを読み込もうとしているのですが、このような場合、どうすればいいのでしょうか?
var THREE = require("three");
var loader = new THREE.JSONLoader();
loader.load( './models/tree.json', function ( geometry, materials ) {
var mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
res.send(mesh);
});
しかし、サーバーは死んでしまい、次のように吐き出されます。
var request = new XMLHttpRequest();
ReferenceError: XMLHttpRequest is not defined
at FileLoader.load
このリクエストは
node_modules\three\build\three.js:29258
というように
XMLHttpRequest
が作られる。
なぜこのようなことが起こるのでしょうか?私が何か間違ったことをしているのか、それともThree.jsのこの部分がNodeのために壊れているのでしょうか?
解決方法を教えてください。
Three.jsでは
XMLHttpRequest
を使用して、JSONファイルなどのファイルを読み込むことができます。
XMLHttpRequest
はブラウザ環境ではビルトインされていますが、Node環境ではビルトインされていないため、定義されておらず、このようなエラーになります。をインストールする必要があります。
xmlhttprequest
パッケージを NPM を通して Node で使用します。
Three.jsでは
xmlhttprequest
モジュールで、グローバル変数を設定する必要があります。
new XMLHttpRequest
が動作します。
global.XMLHttpRequest = require("xmlhttprequest");
関連
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】「Uncaught TypeError: Chromeで "Illegal invocation "が発生する。
-
[解決済み] JavaScriptやデバッグでDOMノード上のイベントリスナーを見つけるには?
-
[解決済み] NVMを使用して、デフォルトのノードバージョンを設定するにはどうすればよいですか?
-
[解決済み] Babel 6 regeneratorRuntimeが定義されていません。
-
[解決済み] Node.jsで「ReferenceError: primordials is not defined」を修正する方法
-
[解決済み] XMLHttpRequestでPOSTデータを送信する
-
[解決済み] JQuery - $が定義されていない
-
[解決済み] Ubuntuでnodeパッケージマネージャを使用してパッケージをインストールすることができない
-
[解決済み】JavaScriptで定義されていない変数を確認する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート