1.新建一个名为nodeTest.js的服务器配置文件
2.引入相应模块
const http = require('http') // 用于创建web服务器实例
const url = require('url') // 内置方法对发送请求的地址进行拆分
const qs = require('querystring') // 将接收到的字符串形式的数据转换成为相应数据类型
3.创建一个Web服务器实例
const server = http.createServer((req,res)=>{xxxxx})xxxxx中为接收请求和响应的具体代码
回调函数中的参数req代表接收的请求,res代表响应
4.具体接收请求和响应代码
(1)从接收到的请求解构出请求的地址和get请求通过url传送的数据
// pathname是解构出请求的地址,query是接收get请求地址中附带的参数默认接收到的是字符串格式
// http://localhost:3000/getinfo?a=1&&b=2中解构出pathname=/getinfo,query={a=1,b=2}
const {pathname,query} = url.parse(req.url)
// 通过querystring将query接收到的字符串格式进行转换
const data =qs.parse(query) // 只有get请求在url地址中传送了数据data才有数据
(2)对接收到的请求进行判断是post请求还是get请求
// 判别接收到的请求方式
if(req.method === 'GET' && pathname ==='/getinfo'){
xxxx
}else if(req.method === 'POST' && pathname === '/postinfo'){
xxxx
}else{
xxxx
}
(3)根据不同的请求做出不同的响应操作
Get请求
// 设置响应头
// res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'})
res.writeHead(200,{'Content-Type':'application/json'})
const project ={
name:'kjw',
age:10
}
// 将project转换成JSON类型(字符串)返回
res.end(JSON.stringify(project))
POST请求
// 设置响应头
res.writeHead(200,{'Content-Type':'application/json'})
// post请求发送过来的数据是JSON类型(字符串)
let Data =''
// 触发data事件一段一段接收数据并拼接数据
req.on('data',temp=>{
Data+=temp
})
// 触发end事件说明数据全部接收完毕
req.on('end',()=>{
// 根据post传送的数据在这里进行相应数据库的操作或者是本地文件的获取
// 返回JSON类型(字符串)
res.end(Data)
})
(4)设置本地服务器监听的端口
server.listen(3000,()=>{ console.log('server is open') })
const qs = require('querystring'):querystring模块是用于将get请求中的params转换成js对象或值
JSON.parse(JSON字符串)是将接收到的JSON字符串转换成js对象或值