Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';“t解决”;儿童“过程”;模块内xmlhttprequest_Javascript_Node.js_Xmlhttprequest - Fatal编程技术网

Javascript Can';“t解决”;儿童“过程”;模块内xmlhttprequest

Javascript Can';“t解决”;儿童“过程”;模块内xmlhttprequest,javascript,node.js,xmlhttprequest,Javascript,Node.js,Xmlhttprequest,我正在处理一个加载JSON文件的DataConnector类。在我的应用程序中,这门课以外的一切都运行得非常好,所以我认为这个问题不会出现在其他任何地方 var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; //#File: DataConnector.js var DataConnector = {}; DataConnector.LoadJSON = (function(file,callback) {

我正在处理一个加载JSON文件的DataConnector类。在我的应用程序中,这门课以外的一切都运行得非常好,所以我认为这个问题不会出现在其他任何地方

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

//#File: DataConnector.js
var DataConnector = {};


DataConnector.LoadJSON = (function(file,callback) {   

    var xobj = new XMLHttpRequest();
    console.log(xobj);
    xobj.open('GET', file, true); 
    xobj.overrideMimeType = "application/json";

    xobj.onreadystatechange = function () {
          if (xobj.readyState == 4 && xobj.status == "200") {

                callback(xobj.responseText);
          }
    };
    xobj.send(null);  
})

DataConnector.getMessage = function(){
    return 'Hello DataConnector';
}



module.exports = DataConnector;
main.js

如果我将DataConnector注释为不需要,webpack可以完美地捆绑我的应用程序。今天早些时候,我还在另一台电脑上做这件事,每次都做得非常好

我用过 npm i-g xmlhttprequest npm i xmlhttprequest npm i xmlhttprequest—保存

xmlhttprequest在我的项目文件夹中的node_modules文件夹中有文件,我正在严格遵循自述文件

老实说,我从未如此困惑过,尤其是在另一个系统上从未出现过这个错误,尽管这两个系统都是安装了save软件的windows10系统


谢谢大家的帮助

xmlhttprequest包是为服务器端JavaScript设计的。
子进程
包内置在NodeJS中。它不是NPM包,因此不能下载或包含在NodeJS上运行之外的任何应用程序中。它是一个专门为处理NodeJ内部功能而设计的包

如果您试图在前端使用
xmlhttprequest
程序包,则会出现此消息。由于
xmlhttprequest
包仅在NodeJ上工作,因此您收到的错误是
child\u进程
不存在,因为它在前端浏览器中不存在。如果是这样的话,您可能会很高兴知道这是内置在浏览器中的。NodeJS包存在的原因是为了模仿浏览器固有的功能。您可以将包作为一个整体删除,并无误地引用
XMLHttpRequest

如果您正在编写同时支持后端和前端的代码,则可能会产生如下结果:

if (typeof XMLHttpRequest === 'undefined') {
  global.XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
}

如果您使用Webpack捆绑后端应用程序,则可能需要将其配置为指向
节点而不是浏览器。

可能需要共享您的Webpack配置,但是:我想可能是我做错了,我正在尝试构建前端组件,这是一个复杂的组件,我试图将其模块化,以便在构建它时可以利用OOP。我知道浏览器有XMLHTTPRequest,但我正试图将此文件捆绑到一个文件中,以便通过轻松设置将其作为单个组件分发。在JavaScript组件中使用类还有其他方法吗?如果node和browser都支持XMLHttpRequest,我不确定为什么会出现问题。浏览器支持XMLHttpRequest,因为它内置于浏览器中。浏览器不支持您正在使用的软件包。服务器上的NodeJS支持它,因为它旨在向服务器提供浏览器内置的XMLHttpRequest功能。因为您不是在开发服务器端应用程序,所以根本不需要该包。
if (typeof XMLHttpRequest === 'undefined') {
  global.XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
}