基于Visual Studio Code 浅谈 node.js-server
转载于server基础
1.http协议
http协议:基于请求和响应的模式,客户端向服务端发起请求,服务端接收到请求后返回数据
完成本次请求;
短连接:一次请求完成之后,客户端与服务器断开连接;服务端不能主动向客户端发送请求
2.服务器的搭建
createServer 作用
- 创建服务器
- 设置监听
// 引入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.request(req)和response(res)的基本概念
req(request) 请求对象
请求头
请求头很短,包含本次请求的基本信息,如url地址,请求类型等
请求体
当post请求时,因为post的数据量比较大,所以传递的数据会存放在请求体里
req对象 常用属性
1. req.url 本次请求的路径和参数
2. req.method 本次请求的方式
如何通过req对象获取post请求的数据:
node在获取post过来的数据时是分次分段获取的
res(response) 响应对象
响应头
存储本次返回给前端数据的配置信息,如文件格式,编码格式等
响应体
决定 向客户端返回什么内容
常用属性
writeHead(状态码,{配置信息})设置响应头
write(内容) 内容会返回给前端可以写多次;内容会自己拼接起来
end(内容)内容也会返回给前端;end只显示第一个;不能不写end,不写的话客户端会一直等待,end可以不带参数
4.req,res代码
// 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.weite end
都是响应数据给前端页面 end(字符串) write(字符串);
end会终止函数的执行,而write不会;
6.调试
- 终端打开文件
- 浏览器跳转 http://localhost:8080
- 端口号+ / 是首页返回数据
+ /shop 购物车返回数据
+/my 页面返回数据