You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Node.js时出现ReferenceError: document is not defined错误求助

解决Node.js中"document is not defined"错误

问题原因

你碰到的ReferenceError: document is not defined,核心原因是Node.js是服务器端运行环境,不提供浏览器专属的DOM(文档对象模型)API。document是浏览器用来操作网页内容的内置对象,Node环境里根本不存在这个东西;而Chrome作为浏览器,自带完整的DOM运行环境,所以代码在浏览器里能正常执行。

解决办法

办法1:用浏览器运行代码

把你的JavaScript代码通过<script>标签嵌入HTML文件,然后用Chrome打开这个HTML文件,不要直接用Node命令执行JS文件。

办法2:在Node环境模拟DOM(仅当必须在Node里处理DOM逻辑时用)

如果一定要在Node环境运行包含DOM操作的代码,可以用jsdom库模拟浏览器DOM环境:

  1. 先安装jsdom:
npm install jsdom
  1. 在你的JS文件开头添加以下代码,创建模拟的document对象:
const { JSDOM } = require('jsdom');
const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>');
global.document = dom.window.document;

之后再执行原本的DOM操作代码就不会报错了。

报错信息

[Running] node "c:\Users\HP\OneDrive\Documents\MEGAsync\Code\JavasScript\11-Arrays-Bankist\starter\script.js"
c:\Users\HP\OneDrive\Documents\MEGAsync\Code\JavasScript\11-Arrays-Bankist\starter\script.js:95
const labelWelcome = document.querySelector('.welcome');
                     ^

ReferenceError: document is not defined
    at Object.<anonymous> (c:\Users\HP\OneDrive\Documents\MEGAsync\Code\JavasScript\11-Arrays-Bankist\starter\script.js:95:22)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

Node.js v18.12.1

[Done] exited with code=1 in 0.217 seconds

内容的提问来源于stack exchange,提问作者simo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:20:36