nodeJS处理get请求
get请求是前端要像后端去索取一些内容的时候使用的。
querystring是node内置的方法,通过它可以很方便处理前端get请求携带的参数。
const http = require('http')
const querystring = require('querystring')
const server = http.createServer((req,res)=>{
const url = req.url
req.query = querystring.parse(url.split('?')[1])
res.end(JSON.stringify(req.query))
})
server.listen(3000)
console.log('server run ...');
nodeJS处理post请求
const server = http.createServer((req,res)=>{
if(req.method === 'POST'){
// 接收数据
let postData = ''
req.on('data',chunk=>{
postData += chunk.toString()
})
req.on('end',data=>{
console.log(postData); // 接受到数据
res.end('done')
})
}
})
服务端路由
路由就是url路径,代表了url资源的唯一的标识。
在node 中,通过req.url获取到的数据,url.split(‘?’)[1]) 获取的是参数,[0]获取的就是路由。
综合的一个小案例:
麻雀虽小,五脏俱全
const http = require('http')
const querystring = require('querystring')
const server = http.createServer((req,res)=>{
const method = req.method
const url = req.url
const path = url.split('?')[0]
const query = querystring.parse(url.split('?')[1])
// 设置返回格式为json
res.setHeader('Content-type','application/json')
const resData = {
method,url,path,query
}
if(method === 'GET'){
res.end(JSON.stringify(resData))
}
if(req.method === 'POST'){
// 接收数据
let postData = ''
req.on('data',chunk=>{
postData += chunk.toString()
})
req.on('end',data=>{
resData.postData = postData
res.end(JSON.stringify(resData))
})
}
})
server.listen(3000)
console.log('server run ...');