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

时间:2018-10-08 19:42:20

标签: javascript node.js server localhost

我是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之后,页面才会加载。为什么会这样?

1 个答案:

答案 0 :(得分:0)

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

否则,浏览器将继续等待来自服务器的更多数据。当您使用Ctrl-C关闭服务器时,服务器将关闭连接,浏览器将呈现收到的内容。

如果您是Node的新手,我建议您研究一下Express之类的东西,它可以为您处理很多重要的事情,例如路由(将URL转到哪些页面),如果有的话,将为您节省很多时间将来的声明。