node 实现本地代码调试远程接口(反向代理并加header(cookie)等)

Others 2020-11-19 03:48:34 2020-11-19 03:48:34 1713 次浏览

有个需求,现有oa 要加个页面,本地新建的html文件要联调并获取远程数据,要涉及跨域,跨域解决方案多种就不赘述了,用node简单实现这个功能

目录根目录新建server.js,如下:

const express = require('express');
const timeout = require('connect-timeout');
const {createProxyMiddleware } = require('http-proxy-middleware');
const app = express();

// HOST 指目标地址 代理指向地址 代理到oa.lininn.cn也可后面加端口 let PROXY_HOST = 'http://oa.lininn.cn' //本地启动端口 let Local_PORT=9000; // 超时时间 const TIME_OUT = 30 * 1e3;

// 设置端口 app.set('port', Local_PORT);

// 设置超时 返回超时响应 app.use(timeout(TIME_OUT)); app.use((req, res, next) => { if (!req.timedout) next(); });

// 静态页面 // 这里一般设置你的静态资源路径 app.use('/', express.static('./'));

/* 反向代理配置 简单赘述:就是本地访问 /workflow 这个接口,把所有请求反向代理到服务器,但由于本地html未登陆,所以代理处加了个登陆的cookie,很简单 / let options={ target:PROXY_HOST, changeOrigin: true, // needed for virtual hosted sites ws: true, onProxyReq(proxyReq, req, res) { //本地由于没有cookie,所以这里设置了cookie,发送给后台,这里可以设置发送给后台的headers,自己研究,更多设置请查询https://www.npmjs.com/package/http-proxy-middleware proxyReq.setHeader('Cookie', '123'); } } app.use('/workflow',createProxyMiddleware(options))

// 监听端口 app.listen(Local_PORT, () => { console.log(server running @${Local_PORT}); });

如上即可,安装依赖,node server就好了,当然也可加自动登录,这些就自己实现吧