我正在尝试学习nodejs,并且在server.js文件中使用require语句后我无法操作DOM对象。但是,没有它它会正常工作。当我点击浏览器中的段落时,它不会改变。有谁知道为什么?
的index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
</head>
<body>
<p id="demo">Click me to change my HTML content (innerHTML)</p>
<script src="server.js"></script>
</body>
</html>
server.js
var config = require('./config');
document.addEventListener('DOMContentLoaded', function() {
$("#demo").click(function () {
document.getElementById("demo").innerHTML = "Paragraph changed!";
})
});
答案 0 :(得分:1)
如果您使用节点运行服务器文件,document
将不会引用您的浏览器。您的浏览器不可用于Node。只有前端的javascript才能引用DOM。此外,如果您没有使用某些捆绑器(如browserify),则在前端javascript中使用require
会引发错误,因此以下jQuery代码将无法运行。打开浏览器的开发人员工具,您应该会在控制台中看到错误。
节点不适用于DOM,不应将服务器文件插入HTML。将服务器代码与前端代码分开。 Node旨在设置服务器并提供文件,而不是与DOM一起使用。尝试阅读有关Node及其用途的更多信息,并可能做一些教程来熟悉它。
答案 1 :(得分:0)
在浏览器中打开html,consle表示require未定义 在server.js:1。在html脚本中不支持require语法