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