Dan*_*any 0 node.js output visual-studio-code vscode-extensions
此错误不会消失!它仅在 VScode 输出控制台中显示,我在 google chrome 中运行代码,错误消失了。
ReferenceError:文档未定义
示例: https: //codepen.io/Dany2020/pen/vYLWPox
`[Running] node "c:\\index.js"
var headerText = document.getElementById("header");
^
ReferenceError: document is not defined
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
[Done] exited with code=1 in 0.132 seconds`
Run Code Online (Sandbox Code Playgroud)
我在谷歌浏览器中运行代码,错误消失了。
这里的区别在于运行代码的环境。Web 浏览器和 Node.js 都可能使用 JavaScript 作为语言,但它们运行代码的上下文非常不同。您尝试在 Node.js 中运行代码:
[Running] node "c:\\index.js"
Run Code Online (Sandbox Code Playgroud)
事实上,在 Node.js 中没有默认document对象。在浏览器中存在,因为在浏览器的上下文中您正在查看文档(网页)。但在 Node.js 的上下文中,情况并非如此。这也意味着您使用的代码行在 Node.js 中实际上没有意义:
var headerText = document.getElementById("header");
Run Code Online (Sandbox Code Playgroud)
如果没有网页,您正在查看什么文档?你想获得什么元素?这些东西都不存在。
听起来您正在编写的代码应该作为网页上浏览器内的 JavaScript 执行。所以这就是你应该运行它的地方。该代码将放入该网页 HTML 的<script>元素中(或元素引用的单独文件中)。<script>如果 Node 进程是您的服务器,则仅在那里执行服务器端逻辑。服务器返回的网页将包含您在问题中引用的代码。