Vue.js+Node.js全栈开发教程:构建HTTP服务器

在本系列教程之前已经提到HTTP服务器。只需要使用以下代码就可
以创建一个简单的HTTP服务器。
【代码6-13】

Vue.js+Node.js全栈开发教程:构建HTTP服务器_第1张图片

通过这段代码可以在浏览器中看到创建的服务器发送给浏览器的
数据。在第4章中已经说明了http模块的主要应用,这里不再讲解,将
重点放在HTTP服务器优化上。
上面这个HTTP服务器只是实现了将一行字符串的数据发送给浏览
器。很明显,如果服务器仅仅能发送一些字符串,那几乎是不可用
的,因此需要对上面这个服务器的功能进行拓展。通过文件模块读取
文件并发送给浏览器就是一个不错的选择,将上面的代码修改为以下
代码:
【代码6-14】

Vue.js+Node.js全栈开发教程:构建HTTP服务器_第2张图片

同时在同级目录中创建一个?为index.html的文件,写入以下代
码:
【代码6-15】

Vue.js+Node.js全栈开发教程:构建HTTP服务器_第3张图片 

 运行代码,利用浏览器?问localhost:3000这个地址,即可看到
如图6.10所示的显示信息。

Vue.js+Node.js全栈开发教程:构建HTTP服务器_第4张图片

需要提及的是,这里的HTTP服务器在发送给浏览器的头部信息中
会把content-type修改为text/html。content-type的作用就是用来表
示客户端或者服务器传输数据的类型,服务器和客户端通过这个值来
做相应的解析。如果将这个值修改为原来的text/plain,浏览器中将
显示index.htm文件中的所有代码,这显然不是我们所希望的。 

 

  • HTTP服务器的路由控制

上一节中的服务器虽然已经可以通过读取文件数据来发送给客户
端了,但是并没有做任何的路由控制,在浏览器中输入任何URL都将返
回同样的内容。简单来说,路由就是URL到函数的映射。
要做到路由控制,通过上面的学习可以预想到,需要设定的必然
有content-type。这里假定只需要处理html、js、css和图片文件,创
建一个名为mime.js的文件,写入以下代码:

module.exports = {
".html":"text/html",
".css":"text/css",
".js":"text/javascript",
".gif": "image/gif",
".ico": "image/x-icon",
".jpeg": "image/jpeg",
".jpg": "image/jpeg",
".png": "image/png"
};

需要做到路由控制,也就需要知道用户请求的URL地址,也就是
req.url,所以通过这个属性获取到URL后就可以对路由进行控制了,
如以下代码所示:
【代码6-16】

Vue.js+Node.js全栈开发教程:构建HTTP服务器_第5张图片

这里通过req.url对路径进行处理来返回不同的资源,从而做到简
单的路由控制。 

你可能感兴趣的:(服务器,http,运维,vue.js,node.js)