मैं 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_modulesthreebuildthree.js:29258
, जहां ए XMLHttpRequest
से बना।
ये क्यों हो रहा है? क्या मैं कुछ गलत कर रहा हूं, या यह नोड के लिए तीन। Js का हिस्सा है?
उत्तर:
उत्तर № 1 के लिए 7तीन .js एक का उपयोग करता है XMLHttpRequest
अपनी JSON फ़ाइल जैसी फ़ाइलों को लोड करने के लिए। XMLHttpRequest
ब्राउज़र वातावरण में अंतर्निहित है, लेकिन यह नोड वातावरण में अंतर्निहित नहीं है, इसलिए यह परिभाषित नहीं है, इस प्रकार त्रुटि। आपको स्थापित करना होगा xmlhttprequest
एनपीएम के माध्यम से पैकेज नोड के साथ इसका उपयोग करने के लिए।
चूंकि तीन.js की आवश्यकता नहीं है xmlhttprequest
मॉड्यूल, आप एक वैश्विक चर सेट करने जा रहे हैं ताकि new XMLHttpRequest
काम करेगा:
global.XMLHttpRequest = require("xmlhttprequest");