在 nodeJS 上加载 html 页面直到键盘中断才会加载



我是nodeJS的新手。我正在尝试将索引.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 个文件:索引.html、样式.css、服务器.js。我启动服务器,直到我点击 cntrl + c 后页面才会加载。这是为什么呢?

您已将数据写入响应,但尚未完成响应。将res.end();放在res.write函数之后。

如果没有这个,浏览器会继续等待来自服务器的更多数据。使用 Ctrl-C 关闭服务器时,服务器将关闭连接,浏览器将呈现它收到的内容。

如果你是 Node 的新手,我建议你研究一下像 Express 这样的东西,它为你处理很多重要的事情,比如路由(哪些 URL 转到哪些页面(,并且将来会为你节省更多的 if 语句。

最新更新