node中http模块的使用及执行流程
时间:2022-03-20 09:49:45|栏目:NodeJS|点击: 次
在node中http有什么作用
http这个模块的职责就是帮你创建编写服务器
执行流程
1. 加载http模块
const http = require('http')
2. 使用http.createServer方法创建一个web服务器 返回一个server实例
const server = http.createServer()
3.提供对数据的服务
发请求
接受请求
处理请求
返回(发送响应)
注册request请求事件,当客户端请求过来就会自动触发request请求事件然后就会执行第二个参数执行回调函数
server.on('request',function(){ console.log('收到客户端的请求了') })
4.绑定端口号,启动服务器
server.listen(3000,()=> { console.log("服务器启动成功了,可以通过http://127.0.0.1:3000/来访问了") })
5. node app.js启动成功
打开浏览器复制粘贴http://127.0.0.1:3000/就会发现浏览器一直在转圈(此时已经与浏览器建立了链接),同时终端返回收到客户端的请求了,关闭终端ctrl+c则会终止浏览器服务((浏览器就不转圈了,终止连接了))
搭建一个基本的web服务器请求
代码如下:
const http = require('http') const server = http.createServer() // request请求事件处理函数需要接收俩个参数 // request请求对象 // 请求对象可以获取客户端的一些请求信息,例如请求路径 // response响应对象 // 响应对象可以用来给客户端发送响应消息 server.on('request',function(request,response){ console.log('收到客户端的请求了','请求路径是:'+request.url) // response对象有一个方法,write可以用来给客户端发送响应数据 // write可以使用多次,但是最后一次一定要用end来结束响应,否则客户端会一直等待 response.write("hello ") response.write("nodejs") response.end() //告诉客户端我的话说完了你可以给用户看了 //由于现在我们的服务器能力很弱,无论是什么请求都只能响应hello nodejs // 怎么做到请求不同的路径响应不同的结果 }) server.listen(3000,()=> { console.log("服务器启动成功了,可以通过http://127.0.0.1:3000/") })
接下来就是编写一个基本的接口数据用来请求
判断在不同的页面显示不同的数据
首页数据
a页面数据
…与首页不同的数据
const http = require("http") const server = http.createServer() server.on('request',function(req,res){ res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'}) console.log("收到请求了,请求路径是:"+req.url) // res.write("heel") // res.write("world") // res.end() // 上面的方式比较麻烦 //可以使用end的时候发送响应 // 根据不同的请求路径发送不同的请求结果 //1. 获取请求的路径 // req.url获取到的是端口号之后的路径 // 也就是说所有的url都是以/开头的 //2. 判断路径处理响应 const url = req.url if(url=="/"){ const project = [ { name:"苹果", price:"18", }, { name:"香蕉", price:"28", }, { name:"西瓜", price:"20", }, { name:"xxx", price:"100", }, { name:"aaa", price:"100", } ] // 响应数据只能是二进制数据或者是字符串 // 响应数据如果是以下的则不行:数字对象数组布尔值 res.end(JSON.stringify(project)) }else if(url=='/a'){ const a = [ { name:"苹果", price:"aa", }, { name:"香蕉", price:"ww", }, { name:"西瓜", price:"vv", }, { name:"wjcx", price:"bb", }, { name:"wdwa", price:"ww", } ] res.end(JSON.stringify(a)) } }) server.listen(3000,function(){ console.log("服务器启动成功,可以访问啦!http://127.0.0.1:3000/") })