处理接口
1.引入相应的原生模块、依赖
let http = require("http")
let fs = require("fs")
let url = require("url")
let querystring = require("querystring")
2.实例化http对象(服务器对象)
let app = http.createServer((req,res)=>{
//排除 /favicon.ico的请求
if(req.url.indexOf("/favicon.ico") === -1){
//需要判断要读取的是动态资源(接口api)还是静态资源
if(req.url.indexOf("/api") !== -1){ //处理接口
//处理地址栏的数据
let urlObj = url.parse(req.url,true)
console.log(urlObj.query)
//非地址栏的数据
let noAddressData = "" //存放非地址栏的数据
req.on("data",chunk=>{ //chunk代表抓取的一片数据,data事件内部会频繁的触发
noAddressData += chunk
})
req.on("end",()=>{ //数据已经全部接受完毕
console.log("非地址栏的数据:",querystring.parse(noAddressData))
})
}else{ //处理静态资源 /index.html
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()
})
3.监听服务器
app.listen(3000)