在 上一个实验 中,演示 Node.JS 中的事件接口。本次实验,我们将演示建立一个简单的 HTTP 服务。
建立一个最简单的HTTP服务
Node.JS 中已经自带了对 HTTP 服务的支持,只需要引入相关的 http 包即可。建立一个名为: httpServer.js 的文件。填入一下代码:
1 | var http = require('http'); |
从以上代码可以看到,我们使用了 http 包,并调用了包中的 createServer 方法来建立 HTTP 服务。我们使用一个回调方法来处理用户的请求,回调方法有两个参数: req - 代表http request 相关的信息,res - 代表 http 输出的相关信息。
在命令行运行:
1 | node httpServer.js |
然后打开浏览器,输入 localhost:3000 即可看到输出的结果。
使用 request 事件处理HTTP请求
新建一个名为: httpServerWithRequest.js 文件,在文件中填入以下代码:
1 | var http = require('http') |
注意到我们使用了 node 中的事件机制,通过监听 request 事件来处理 http 请求
处理Post的请求
在 HTTP Post 请求中,需要从 request 的 Body 中获取用户上传的参数。 新建名为: httpServerRequestPost.js 的文件,在文件中填入一下代码:
1 | var http = require('http'); |
注意body中数据的取法
处理静态资源
对于网站中的静态资源,通常更好的方法是使用分离的Web服务器,比如:nginx, apache等。但对于小型项目,又不想增加维护成本,就可以考虑直接使用 Node.JS 来处理。
新建一个名为: httpServerStatic.js 的文件,填入一下代码:
1 | var path = require('path'), |
可以看到,实现是直接将请求的文件读入并传给客户端。
下一步
在 下一个实验 中,将综合前几次实验的结果,构建一个 TODO API 服务。