http模块和https模块
使用了express的http模块实现了对前端http请求的简单转发,从而实现了跨域请求
const express = require('express');
const http = require('http');
const router = express.Router();
router.route('/')
.get((req, res) => {
const { url } = req.query;
const proxyReq = http.request(url, remoteRes => remoteRes.pipe(res));
proxyReq.end();
});
module.exports = router;
router.use('/proxy', proxy);
使用的时候:
export const QUERY_URL = 'https://wallstreetcn.com/live/global';
const X_URL = `/api/proxy?url=${encodeURIComponent(QUERY_URL)}`;
fetch(X_URL).then(v => console.log(v.text()))
但是这样有一个问题,如果请求的资源类型为页面资源(文本),如果是经过gzip压缩的,直接处理会返回乱码,需要使用zlib.createGunzip()
方法进行解压缩处理后再进行转发就可以了