【nodeJs】收到http://localhost:8888/api/axx/bxx/cxx请求,找到mock/apiAxxBxxCxx.json 的内容输出

方法一:

const http = require('http');
const fs = require('fs');
const server = http.createServer((req,res)=>{
  res.setHeader('Content-Type','application/json');
  const reqUrl = new URL(req.url,`http://${req.headers.host}`);
  const urlPath = reqUrl.pathname
        .split('/')
        .map((path,index)=>{
          (index <= 0 ? path : path.charAt(0).toUpperCase() + path.slice((1)))
        })
        .join('')
  const filePath = `./mock/api${urlPath}.json`;
  if(fs.existsSync(filePath)){
    res.end(fs.readFileSync(filePath).toString('utf-8'))
  }else {
    res.end('{"tet":"0","msg":"未找到json文件"}')
  }
})
server.listen(8888)

方法二:

const http = require('http');
const fs = require('fs');
const port = 8080;
const mockDir = "/mock";
const server = http.createServer();

const response = (handler)=>{
  return (req,res)=>{
    try{
      handler(req,res)
    }catch(error){
      console.log(error);
      res.statusCode = 500;
      res.end({
        code:500,
        msg:"Server error"
      })
    }
  }
}

const body = (handler)=>{
  return (req,res)=>{
    let body = '';
    req.on('data',(chunk)=>{
      body += chunk;
    })
    req.on('end',()=>{
      handler({...req,body},res)
    })
  }
}

server.addListener(
  "request",
  body(
    response((req,res)=>{
      const path = req.url;
      res.setHeader("Content-Type","applicaton/json");
      res.charset = "utf-8";
      const fileName = path
            .split('/')
            .slice(1)
            .map((unit)=>`${unit[0].toUpperCase()}${unit.slice(1)}`)
            .join('');
      const json = fs.readFileSync(`${__dirname}${mockDir}/${fileName}`);
      res.end(json)
    })
  )
)

server.listen(port,()=>{console.log(`Mock server running at ${port}`);
})

方法三:

方法四:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒枫落林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值