/ / XMLHttpRequest नोड में JSONLoader का उपयोग करते समय परिभाषित नहीं किया गया - जावास्क्रिप्ट, नोड .js, तीन.js

XMLHttpRequest को नोड में JSONLoader का उपयोग करते समय परिभाषित नहीं किया गया - जावास्क्रिप्ट, 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);
});

हालांकि, सर्वर मर जाता है और बाहर थूकता है

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");