let http = require('http')
let fs = require('fs')
let url = require('url')
let querystring = require('querystring')
let app = http.createServer((req,res)=>{
// 排除 /favicon.ico 的请求
if(req.url.indexOf('/favicon.ico') === -1){
// 判断要读取的是动态资源(接口api) 还是静态资源
if(req.url.indexOf("/api") !== -1){ // 处理接口
// 处理地址栏的数据
//console.log(urlobj.query,true) // 第二个参数写true打印出的结果 { a: '1', b: '2' }
let urlobj = url.parse(req.url,true)
console.log(urlobj.query) // 第二个参数不写打印出的结果 a=1&b=2
// 非地址栏的数据 post请求
let noAddressData = '' //存放非地址栏的数据
req.on('data',chunk=>{ //chunk 抓取的是一片数据,data事件内部会频繁非触发
noAddressData += chunk
})
req.on('end',()=>{
// querystring 处理查询字符串 非地址栏的形式传参(比如post请求)
// querystring.parse(参数) 将参数转成对象
// querystring.stringfy(参数) 将参数转成字符串
console.log('非地址栏的数据:',querystring.parse(noAddressData))
})
}else{
// 处理静态资源
try {
let path = req.url === "/" ? "/index.html" : req.url;
let html = fs.readFileSync("./www"+path)
// 直接将HTML 返回给浏览器
res.write(html)
} catch (error) {
let html = fs.readFileSync("./www/nopage.html")
res.write(html)
}
}
}
res.end()
})
app.listen(8000) //监听的端口号 0~1024最好不要使用
processing request nodejs
Guess you like
Origin blog.csdn.net/weixin_46389498/article/details/104762404
Recommended
Ranking