Don*_*Gaz 2 javascript node.js three.js
我正在用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);
});
Run Code Online (Sandbox Code Playgroud)
但是,服务器会死掉并吐出
var request = new XMLHttpRequest();
ReferenceError: XMLHttpRequest is not defined
at FileLoader.load
Run Code Online (Sandbox Code Playgroud)
该请求在未来node_modules\three\build\three.js:29258,凡XMLHttpRequest而成.
为什么会这样?我做错了什么,或者Three.js的这部分被Node打破了?
Three.js使用an XMLHttpRequest来加载诸如JSON文件之类的文件.XMLHttpRequest是在浏览器环境中内置的,但它不是内置在Node环境中,因此没有定义,因此错误.您必须xmlhttprequest通过NPM 安装软件包才能将其与Node一起使用.
由于Three.js不需要该xmlhttprequest模块,您将不得不设置一个全局变量,以便它new XMLHttpRequest可以工作:
global.XMLHttpRequest = require("xmlhttprequest");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6846 次 |
| 最近记录: |