Node.js 如何";“运行”;没有Express等的HTML网页

Node.js 如何";“运行”;没有Express等的HTML网页,node.js,cors,require,Node.js,Cors,Require,我的问题可能与其他问题非常相似,但我已经阅读了很多答案,但我不完全理解它们背后的细节 我必须创建node.js REST API,但我以前没有上过任何课程。因此,我目前正在阅读并尝试学习创建一个简单的node.js脚本的教程 我安装了node.js,创建了我的脚本(它只是读取一个输入字段),当我点击一个按钮时,它应该在控制台中写入输入 本教程只需要node.js,并使用.createserver。我知道node.js是服务器端的,没有它就无法解释。 本教程要求在浏览器中直接使用路径打开.html

我的问题可能与其他问题非常相似,但我已经阅读了很多答案,但我不完全理解它们背后的细节

我必须创建node.js REST API,但我以前没有上过任何课程。因此,我目前正在阅读并尝试学习创建一个简单的node.js脚本的教程

我安装了node.js,创建了我的脚本(它只是读取一个输入字段),当我点击一个按钮时,它应该在控制台中写入输入

本教程只需要node.js,并使用.createserver。我知道node.js是服务器端的,没有它就无法解释。 本教程要求在浏览器中直接使用路径打开.html文件。显示html网页,但是。。。当我按“ok”时,错误如下:

*app.js:1 Uncaught ReferenceError: require is not defined

Access to XMLHttpRequest at 'file:///.../ApplicationAngular/nodeProject/app.html?name=' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

GET file:///.../ApplicationAngular/nodeProject/app.html?name= net::ERR_FAILED*
StackOverflow上的所有线程都说明我需要第三方来运行HTML网页。但在教程中,一切都很好,从未提及Express、Cheerio等的存在

以下是代码示例: app.html

教程缺少什么吗?我是否必须安装Express才能查看网页? 再次抱歉,英语不是我的母语


非常感谢您的回答。

在您的html中添加这一行

<script src="app.js"></script>    <!-- wrong! -->
浏览器和nodej支持同一种语言,这一事实在您理解这一切时有点令人困惑。语言相同,但两个运行时环境完全不同。耐心点。你会明白的

您向我们展示的
app.js
nodejs程序应该可以正常运行。在其
if(name)
分支中,它处理来自浏览器中
$.get()
操作的请求。在其
else
分支中,它将html文件传递到浏览器

而且,必须指出的是,在没有express或其他Web服务器框架的情况下,仅使用nodejs进行此类教程远远不够,这将是xxx的一大难题,足以让您开发自己的框架

编辑此行有两次

res.writeHead(200, {'Content-Type': 'text/plain'});   /* wrong! */
将两个引用都更改为

res.writeHead(200, {'Content-Type': 'text/html'});

内容类型:text/html
标题告诉浏览器将html文件解释为html,而不是原始文本。

谢谢您的回答!实际上,我已经运行了你给我的命令,我可以访问它,但是网页没有显示:(我只有我的“Hello Word”,没有别的。所以我试着把它添加到一个src行中,尝试别的东西,因为我在另一个线程上看到了它。但是,是的,所有这些都不能使脚本正常运行…是的,我从Express中听到了很多好消息,但我试着一点一点地学习。我想我会找到一个关于Express的教程!请查看我的编辑。记住,查看源代码。。。是你的朋友。而且,jquery 1.10真的很老了。再次使用Hi!我用你的建议更新了我的第一个项目:-Installed Express-替换了我的jquery版本,它好多了!关于CORS等的错误少了很多。我更了解它的功能。我发现了导入的新方法(我现在有Node version 14、Express v6和TypeScript 4.1),但我又一次遇到了这个错误(没有定义require)。但我已经在寻找解决方案的路上了。再次感谢!)
 node app.js
res.writeHead(200, {'Content-Type': 'text/plain'});   /* wrong! */
res.writeHead(200, {'Content-Type': 'text/html'});