http/fs/url
1 导入模块
var http = require('http'),
fs = require('fs'),
url = require('url');
2 创建一个服务(有一个服务员)
var server = http.createServer(function(request,response){
//当客户端向服务器端的当前服务(端口号是80的这个服务)发送一个请求,并且当前服务已经成功接收到这个请求后,执行这个回调函数
//服务创建成功后如何向服务器发送请求?
1) 在浏览器中输入:http://localhost:端口号/
2)在浏览器中输入:http://本机ip地址:端口号/
3)webstome默认端口号:63342
2.1 参数
1) request (请求):存放的是所有客户端的请求信息,包含客户端通过问号传参的方式传递给服务器的数据内容
//request的使用方法
①request.url(存放的是客户端请求的文件资源目录的名称以及传递给服务器的参数)-->
例如:
客户端请求的地址是:http://127.0.0.1:80/index.html?name=jk&age=20
服务器端通过request.url得到/index.html?name=jk&age=20
此时需要应用到下一节讲的url方法进行解析
var urlObj = url.parse(request.url,true)
//获取常用值
var pathname = urlObj.pathname;
var query = urlObj.query
//根据请求的URL地址(具体的是根据地址中的pathname)获取到对应的资源文件中的源代码(即I/O操作)
此时需要应用fs模块
//同步读取指定文件中的内容(文件中的内容读取不完,不执行下面的操作)
fs.readFileSync([path+name],[encode])
var con = fs.readFileSync('../01.html','utf-8')
此时con即为读取的内容,将读取的内容返回给客户端,需要用到参数response
2) response(响应):提供了向客户端返回内容和数据的方法
①response.wirte(con);-->向客户端返回内容
//必须加上response.end
②response.end():-->告诉服务器响应结束了
③以上两种方法可以简写 response.end(con);
});
3 为服务监听一个端口(发一个胸牌),监听的端口不能重复
server.listen(80,function(){
//当服务创建成功,并且端口号监听成功之后执行这个回调函数
console.log('server is success,listening on 80 port!');
});
URL模块中提供了一个方法:url.parse(),用来解析URL地址的,详情请看下一节