node.js - 简单的 Node.js 服务器可以发送消息 - 为什么会抛出 html 错误?
问题描述
Node.js: v10.16.0
操作系统: Windows 10
问题:我的简单测试服务器可以发送消息,但不能发送 html 信息。为什么会这样?
背景:以下简单服务器在浏览器中显示消息“hello world”。但是,当我检查 devtools 中的 Network 选项卡时,我看到有关 favicon.ico 的错误(failed)::ERR_CONNECTION_REFUSED
。
'use strict';
const http = require('http');
const port = 3000;
const server = http.createServer((req,res) => {
res.end('hello world');
process.exit();
});
server.listen(port);
但是,当我尝试发送 html 信息时,它会立即引发错误。This site can’t be reached localhost refused to connect. ERR_CONNECTION_REFUSED
.
'use strict';
const http = require('http');
const port = 3000;
const server = http.createServer((req,res) => {
res.setHeader('Content-Type', 'text/html');
res.write('<html>');
res.write('<header><title>hello world</title></header>');
res.write('<body><h1>hello world</h1></body>');
res.write('</html>');
res.end();
process.exit();
});
server.listen(port);
服务器非常简单,我正在学习非常基本的教程。我不确定为什么 favicon.ico 在第一个版本中抛出连接被拒绝错误以及为什么第二个版本立即失败。
解决方案
浏览器通常会为 HTML 页面发送多个请求,例如 favion.ico、实际页面等。
您的代码process.exit()
在收到第一个请求后。
您可以像下面那样删除该行,它应该可以工作。
'use strict';
const http = require('http');
const port = 3000;
const server = http.createServer((req,res) => {
res.setHeader('Content-Type', 'text/html');
res.write('<html>');
res.write('<header><title>hello world</title></header>');
res.write('<body><h1>hello world</h1></body>');
res.write('</html>');
res.end();
});
server.listen(port);
推荐阅读
- javascript - 获取 Javascript 对象中的属性
- javascript - 我怎样才能找到这个父类别的.children
- css - 使用 @supports selector() 尽管 Sass 不支持它
- apache-spark - 来自 pyspark 的 Hive 查询
- kubernetes - k8s - 即使边车坠毁也能保持 pod
- c++ - C ++一个线程如何正确通信其任务已完成?
- bash - 如何使用 AWK 将文件中的非 ASCII 字符读取为 ASCII
- c - 在 C 中设置函数调用所消耗的分析时间
- git - 如何提交对我不拥有且未分叉的存储库的更改的拉取请求?
- c# - 如何在 C# 中将数据发送到 ASP.NET Core MVC 控制器?