nodejs写静态资源服务器+后台代理

nodejs写静态资源服务器+后台代理

思路

解析请求的url,通过fs模块读取本地资源,返回给浏览器

主要模块

http 模块,创建http服务
fs 文件模块,用于读取本地静态文件
url 模块,解析url
path模块,拼接路径(可根据不同操作系统,输出不同结果)
http-proxy,用于后台的代理

demo
const http = require('http'),
  fs = require('fs'),
  url = require('url'),
  path = require('path'),
  proxy = require('http-proxy');

const port = process.env.PORT || 3000;
const server = http.createServer((req, res) => {
  // 获取解析后的url对象
  const pathObj = url.parse(req.url, true);
   // 后台api
  if (pathObj.pathname === '/barrage') {
    proxyServer.web(req, res, { target: 'http://127.0.0.1:8080' });
    return;
  }
  // 资源路径
  const filePath = path.join(__dirname, pathObj.pathname);
  console.log(filePath);
  fs.readFile(filePath, (err, file) => {
    if (err) {
      console.error('404');
      res.end('<h1>404 not found</h1>');
    } else {
      console.log('success');
      // 二进制
      res.write(file, 'binary');
      res.end();
    }
  });
});

server.listen(port);
console.log(`server start on ${port}`);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值