http
Node内置的http模块功能使得它非常适合用来开发Web程序。与apache不同,apache为静态服务器,用于将浏览器端请求的静态资源返回。而http模块可以开发动态接口,用于处理前端业务,比如登录,注册,查询资讯信息等。
使用流程:
- 引入http模块
- 创建服务对象
- 在创建的服务对象中编写需要执行的操作代码
- 打开服务并对创建的服务对象进行监听或者其他操作
创建:http.Server
http.createServer()表示创建一个服务,该函数的返回值为http.Server的实例。
var server = http.createServer(function(req, res){
}
函数:
server.listen()打开服务,并且监听端口
erver.close()关闭服务
事件:
server.on(‘close’,callback)当服务关闭,执行callback函数
server.on(‘error’,callback)当服务发送错误,执行callback函数
server.on(‘connection’,callback)当服务连接后,执行callback函数
server.on(‘timeout’,callback)监听超时调用函数,当超时调用函数执行时,执行callback函数
编写服务对象内执行函数:http.IncomingMessage
HTTP服务器接收到的客户端请求时调用的回调函数中的第一个参数值为一个http.IncomingMessage对象,该对象用于读取客户端请求流中的数据。
当从客户端请求流中读取到新的数据时触发data事件,当读取完客户端请求流中的数据时触发end事件
属性:
eq.method 请求方法
req.url 请求url
req.headers 请求头
req.httpVersion 请求版本号
req.socket 底层socket连接对象
事件:
req.on(‘data’,callback)用于监听data函数,是否有读取新数据
req.on(‘end’,callback) 监听是否读取完毕
示例一:简单的链接过程
var http = require("http");
//引入http服务
//创建服务对象
var server = http.createServer(function(req, res) {
var url = req.url;
var method = req.method;
console.log(url, method);
});
//启动并监听端口
server.listen(8080, function() {
console.log("8080端口监听成功---");
});
server.on('connection', function() {
console.log("服务器连接成功");
});
运行代码之后使用浏览器访问本地127.0.0.1:8080/student?name="lisi’,可以看到控制台输出的监听内容。
============================