我是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之后,页面才会加载。为什么会这样?
答案 0 :(得分:0)
您已将数据写入响应,但尚未完成响应。将res.end();
放在res.write
函数之后。
否则,浏览器将继续等待来自服务器的更多数据。当您使用Ctrl-C关闭服务器时,服务器将关闭连接,浏览器将呈现收到的内容。
如果您是Node的新手,我建议您研究一下Express之类的东西,它可以为您处理很多重要的事情,例如路由(将URL转到哪些页面),如果有的话,将为您节省很多时间将来的声明。