当前位置: 首页 > news >正文

node:ReferenceError: XMLHttpRequest is not defined

node:ReferenceError: XMLHttpRequest is not defined

1 前言

node执行如下代码:

new XMLHttpRequest()

报错提示:ReferenceError: XMLHttpRequest is not defined

2 解决

2.1 可能原因是没有安装xmlhttprequest

npm install xmlhttprequest

使用淘宝镜像源安装成功:

https://registry.npmmirror.com/

package-lock.json:

在这里插入图片描述

2.2 安装xmlhttprequest后需要引入

上述直接定义方式为如下:

new XMLHttpRequest()

安装后node执行依然报错提示:ReferenceError: XMLHttpRequest is not defined,是因为还需要引入使用。

使用node命令,那么需要使用CommonJS模块系统的require,引入如下:

let request = require('xmlhttprequest').XMLHttpRequest;

重新执行node xx.js不再报错。

2.3 如何使用模块Module的方式引入呢?

因为Node生态包含两个不同的模块系统,ESM(ECMAScript模块)和 CommonJS,两个模块系统彼此不兼容。如果我们希望使用module引入的方式来执行(ECMAScript),而不是上面的CommonJS的require引入,修改如下:

import * as request from "xmlhttprequest";

但是直接执行报错提示:SyntaxError: Cannot use import statement outside a module

解决方式是在执行的js文件所在目录下的package.json文件中,添加如下配置:

"type":"module",

但是因为这里是跑的demo项目,没有package.json文件,这里我在开启终端的文件目录下生成package.json文件:

生成package.json的命令:

npm init -y

或者npm init(需要多次回车确定以及输入yes)

生成 package-lock.json

npm install --package-lock-only

在首次安装依赖包时会创建package-lock.json文件,这里我们使用npm init生成package.json文件即可:

在es6目录下的终端输入npm init后,生成package.json文件:

在这里插入图片描述

在这里插入图片描述

新增如下配置:

"type":"module",

在这里插入图片描述

再次执行如下:

import * as request from "xmlhttprequest";
const req = new request.XMLHttpRequest();console.log(req)

执行无误:

在这里插入图片描述

http://www.lryc.cn/news/329130.html

相关文章:

  • PHP定时任务框架taskPHP3.0的学习记录1(TaskPHP、执行任务类的实操代码实例)
  • 图腾柱PFC:HP1010为您的电动两轮车之旅提供绿色,高效,安全的动力
  • 动态规划-----背包类问题(0-1背包与完全背包)详解
  • 通过 Docker 搭建 BookStack
  • 通俗易懂:什么是Java虚拟机(JVM)?它的主要作用是什么?
  • [k8s] kubectl执行失败后等待一段时间再重试 (Shell实现)
  • java中的static和单例模式
  • RabbitMQ相关总结
  • RAFT: Adapting Language Model to Domain Specific RAG
  • 第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯
  • 第四题:星期一
  • Mamba: Linear-Time Sequence Modeling with Selective State Spaces(论文笔记)
  • 2024蓝桥杯每日一题(区间DP)
  • LeetCode-2952. 需要添加的硬币的最小数量【贪心 数组 排序】
  • 新书速递——《可解释AI实战(PyTorch版)》
  • 国产数据库中统计信息自动更新机制
  • 【C++】入门C++(中)
  • javaIO
  • 睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用
  • 用JSch实现远程传输文件并打包成jar
  • 2023年第十四届蓝桥杯大赛软件类省赛C/C++研究生组真题(代码完整题解)
  • 力扣刷题Days28-第二题-11.盛水最多的容器(js)
  • 文生图大模型三部曲:DDPM、LDM、SD 详细讲解!
  • 算法学习——LeetCode力扣动态规划篇10(583. 两个字符串的删除操作、72. 编辑距离、647. 回文子串、516. 最长回文子序列)
  • TASKPROMPTER
  • C之易错注意点转义字符,sizeof,scanf,printf
  • 等级保护测评无补偿因素的高风险安全问题判例(共23项需整改)
  • JavaScript笔记 09
  • 操作教程|在MeterSphere中通过SSH登录服务器的两种方法
  • Swashbuckle.AspNetCore介绍