当前位置: 首页 > article >正文

5. Node.js Http模块

2.4 Http模块

2.4.1创建Http服务端
//1.导入http模块
let http=require('http')

//2.创建服务对象
let server=http.createServer((request,response)=>{
   
    console.log(request.method)        //获取请求方式
    console.log(request.url)           //获取请求url(路径和参数部份)
    console.log(request.httpVersion)   //获取请求http版本号
    console.log(request.headers)       //获取请求头
    //设置响应头,如果返回的内容中有中文,需要设置一下以下响应头,否则会出现乱码
    response.setHeader("content-type","text/html;charset=utf-8")
    //响应结束后返回的内容
    response.end('你好HTTP Server')
})
//启动服务,并配置监听端口
server.listen(9000,()=>{
   
    console.log('服务已启动')
})

执行这个js文件后,就可以通过浏览器访问本机的9000端口,并得到了响应

在这里插入图片描述

2.4.2获取request中的请求体
//1.导入http模块
let http=require('http')

//2.创建服务对象
let server=http.createServer((request,response)=>{
   
    let body=''
    request.on('data',chunk=>{
   
        //持续读取request中的请求体
        body += chunk
    })
    request.on('end',()=>{
   
        //读取request中的请求体结束后,执行的代码
        console.log(typeof(body))
        console.log(body)
        response.end('Hello Http server')
    })
})
//启动服务,并配置监听端口
server.listen(9000,()=>{
   
    console.log('服务已启动')
})

使用postman发送post请求

输出:

服务已启动
string
{
   

    "name": "muyi",
    "gender": 1,
    "birth": "1983-03-13",
    "grade": 3

}
2.4.3获取url中的路径和参数

用户访问的url:

http://localhost:9000/test/?arg1=1&arg2=2
//获取url中的路径和参数(方法1)
//1.导入http模块
let http=require('http')
//2.导入url模块
let url=require('url')


//3.创建服务对象
let server=http.createServer((request,response)=>{
   
    //解析request.url,后面不如不加true,则获取到的参数是字符串,加上true后获取到的参数是一个字典,方便提取数据
    res=url.parse(request.url,true)
    console.log(res)
    console.log('path:',r

http://www.kler.cn/news/350868.html

相关文章:

  • 基于HEC-Ras及ArcGIS的泥石流数值模拟与灾害风险评估典型案例
  • K8S系列-Kubernetes网络
  • 【LeetCode:910. 最小差值 II + 模拟 + 思维】
  • 【机器学习】VQ-VAE(Vector Quantized Variational Autoencoder)
  • 梳理一下spring中,与message相关的知识点
  • python支付宝支付和回调
  • 2024-10-17 精神分析-回忆出梦境的方法-记录
  • 奇瑞、别克、比亚迪、长安等安卓车机安装第三方应用教程
  • OpenCV高级图形用户界面(13)选择图像中的一个矩形区域的函数selectROI()的使用
  • vue elementui table编辑表单时,弹框增加编辑明细数据
  • STM32 | STM32F4OTA_ESP8266_Bootloader为引导程序远程更新的代码(APP)
  • Leetcode—1117. H2O 生成【中等】(多线程)
  • 【QT】常用控件(一)
  • DevExpress WPF中文教程:Data Grid(数据网格)实现细节一览
  • 【ChatGPT】编写结构化 Prompt 的技巧
  • 搜维尔科技:使用Manus Primel Xsens数据手套直接在Xsens及其插件中捕获手指数据
  • HM NIS Edit无法选择安装程序语言
  • 在Docker中快速使用各个版本的Oracle数据库(10g、11g、12c、18c、19c、21c、23c)
  • 为什么react副作用函数叫hooks钩子函数,副作用指的是什么
  • Web组态数据联动
  • Go语言反射机制详解:通过反射获取结构体的字段和方法
  • 算法之排序
  • Flutter结合鸿蒙next 中数据类型转换的高级用法:dynamic 类型与其他类型的转换解析
  • shell错误修改
  • 无人机之放电速率篇
  • 浙大数据结构:KMP 字符串匹配算法比较