我正在写一个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破坏了?
答案 0 :(得分:7)
Three.js使用XMLHttpRequest
加载诸如JSON文件之类的文件。 TestPropertiesFile
内置于浏览器环境中,但它并非内置于Node环境中,因此未定义,因此错误。您必须通过NPM安装xmlhttprequest
软件包才能将其与Node一起使用。
由于Three.js不需要XMLHttpRequest
模块,因此您必须设置一个全局变量,以便xmlhttprequest
能够正常工作:
new XMLHttpRequest