1.http
http协议:基于请求和响应的模式,客户端向服务端发起请求,服务端接收到请求后返回数据
完成本次请求
一次请求完成之后,客户端与服务器断开连接,
短连接
2.搭建服务器
// 引入http模块 --- http.js文件 let http = require("http"); let urlObj = require("url"); //创建服务器 let server = http.createServer(function (request,response) {}) // 启动服务器监听 参数1:端口号 // 参数2:启动服务器成功之后,调用的函数 server.listen(8080,function () { console.log("8080--服务器启动成功"); })
3. res ,req 基本概念
req(request) 请求对象 请求头 请求头很短,包含本次请求的基本信息,如url地址,请求类型等 请求体 当post请求时,因为Post的数据量比较大,所以传递的数据会存放在请求体里 req对象 常用属性 1. req.url 本次请求的路径和参数 2. req.method 本次请求的方式 如何通过req对象获取post请求的数据: node在获取post过来的数据时是分次分段获取的 res(response) 响应对象 响应头 存储本次返回给前端数据的配置信息,如文件格式,编码格式等 响应体 决定 向客户端返回什么内容
4. req,res代码
中文乱码需要 添加编码方式
req.url 得到客户端访问地址
// request 请求对象,包含用户的请求信息 console.log(request.url);//访问地址 // url模块中的parse方法解析 // parse 将路径url解析成对象,第二个参数,如果写true,则将query这个key // 对应的value值,转成对象类型 let datas = urlObj.parse(request.url,true); //获取前端请求传递过来的数据 console.log(datas.query); // 修改代码编码格式,响应数据的编码格式 response.writeHead(200,{ "content-type":"text/html;charset=utf-8" }); //不同页面返回不同的数据 if (request.url == "/"){ response.end("这是首页返回的数据!"); } else if(request.url == "/shop"){ response.end("这是购物车返回的数据!"); }else if(request.url == "/my"){ response.end("这是我的页面返回的数据!"); }else { response.end("该页面不存在,404"); }
5. write end
都是响应数据给前端页面 end(字符串) write(字符串)
end会终止函数的执行,而write不会
6.调试