非原创
本文转自https://github.com/a415432669/-front_end_notebook/tree/master/Node/day6/%E6%96%87%E6%A1%A3
要求:可以根据自己设定的正则匹配路径来执行相对应的函数来响应用户的内容。
1.设定正则的匹配路径和响应的执行函数
app.on('^/$',(req,res)=>{
res.setHeader("content-type","text/html;charset=utf-8");
res.end("<h1>这是首页</h1><img src='./abc/cxk.jpg'>")
})
2.获取正则路径创建正则对象
let reg = new RegExp(regStr,'igs');
3.匹配路径,并调用相对应的函数
if(reg.test(req.url)){
this.reqEvent[key](req,res)
resState = true
break;
}
4.判断是否正则路径响应过,如果响应过,将不再响应,不能重复响应,会报错
if(!resState){
if(pathObj.dir==this.staticDir){
res.setHeader("content-type",this.getContentType(pathObj.ext))
let rs = fs.createReadStream('./static/'+pathObj.base)
rs.pipe(res)
}else{
res.setHeader("content-type","text/html;charset=utf-8")
res.end("<h1>404!页面找不到</h1>")
}
}