javascript - 在 nodeJS 上加载 html 页面直到键盘中断才会加载
问题描述
我是nodeJS的新手。我正在尝试将 index.html 页面加载到我的 8080 端口上并拥有以下内容:
var http = require('http');
var fs = require('fs');
var PORT = 8080;
function home(req, res) {
if(req.url == '/'){
fs.readFile('index.html', function read (err, data) {
res.writeHead(200, {'Content-type' : 'text/html'});
res.write(data);
res.end();
});
}
};
var server = http.createServer(function (req, res) {
home(req, res);
});
server.listen(PORT);
我在同一目录中有 3 个文件:index.html、style.css、server.js。我启动服务器,直到我按下 cntrl + c 后页面才会加载。为什么是这样?
解决方案
您已将数据写入响应,但尚未完成响应。放在res.end();
你的res.write
功能之后。
没有这个,浏览器会一直等待来自服务器的更多数据。当您使用 Ctrl-C 关闭服务器时,服务器会关闭连接,并且浏览器会呈现它收到的内容。
如果您是 Node 新手,我建议您研究一下Express之类的东西,它可以为您处理很多重要的事情,例如路由(哪些 URL 到哪些页面),并且将来会为您节省更多的 if 语句。
推荐阅读
- ios - 从自定义 swift 文件导入动画功能失败
- google-apps-script - 使用时间戳过滤 gmail
- javascript - 如何在 pino.js 记录器中旋转日志文件
- c# - C# BitConverter.ToInt64 - 目标数组不够长
- ubuntu - 树莓派 4 上 Ubuntu 20.10 上的 .net Core 控制台应用程序在尝试执行程序时给出 No such file or directory
- python - 如果一次又一次使用相同的字典,Python 字典数据不会得到更新
- python - Xbee图像传输python
- c# - 系统间缓存 - 有没有办法在全局变量上获得更改通知?
- c# - C# - Selenium WebDriver 无法获取 Inspect Element 代码
- html - 使用 flex-wrap 收缩 DIV