nodejs+express统一代理配置

var createError = require(‘http-errors’);
var express = require(‘express’);
var path = require(‘path’);
var cookieParser = require(‘cookie-parser’);
var logger = require(‘morgan’);
var history = require(‘connect-history-api-fallback’);
var ejs=require(‘ejs’);
//统一代理配置
var proxyxx= require(’./proxy/index’);
//原express自带测试用
var usersRouter = require(’./routes/users’);
//微信公众号
//var wechat = require(’./routes/wechat’);

var app = express();

//调整为ejs并调整模板为html格式
app.set(‘views’, path.join(__dirname, ‘views’));
//app.set(‘view engine’, ‘ejs’);
app.engine(‘html’, require(‘ejs’).renderFile);
app.set(‘view engine’, ‘html’);

app.use(logger(‘dev’));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
//必须放在app.use(express.static之前(解决vue下history模式404)
app.use(history({
verbose: true,
rewrites: [
//vue单页面,存在多个vue项目可配置多个如:to:‘app1’ to:‘app2’
{from: //k5003/.*KaTeX parse error: Expected 'EOF', got '}' at position 11: /, to: '/'}̲,// 尝试一 /…/,to: function(context) {return context.parsedUrl.path}}// 尝试二
]
//指定静态文件路径
app.use(express.static(path.join(__dirname, ‘public’)));
//配置代理服务规则例子
/*var options = {
target: ‘http://127.0.0.1:8088’, //转发到的地址
changeOrigin: true, //是否允许跨域
ws: true, // 代理websocket
pathRewrite: {
‘^/apis’: ‘’, // 重写路径
}
};
var exampleProxy = proxy(options);

app.use(’/apis’, exampleProxy);
*/
//接入代理模块
proxyxx.startTask(app);
//测试用例模块
app.use(’/users’, usersRouter);
//接入微信公众号模块
//app.use(’/wechat’, indexRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get(‘env’) === ‘development’ ? err : {};

// render the error page
res.status(err.status || 500);
res.render(‘error’);
});

module.exports = app;

-----------/proxy/index
var proxy = require(‘http-proxy-middleware’);
var $conf = require(’…/conf/proxyurl’);
/**
*exports 代理
*/
module.exports = {
startTask:function(app){
let proxyList = $conf.datasur;
var config={};
for (let i = 0; i < proxyList.length; i++) {
const proxyElement = proxyList[i];
if(proxyElement.changeOrigin){
console.log([Proxy]: ${proxyElement.src} --> ${proxyElement.target});
let api=’^’+proxyElement.src;
config[api]=’’;
app.use(proxyElement.src,proxy({
target: proxyElement.target,
ws:true,
changeOrigin: true,
pathRewrite: config
}));
}
}
}
}
-------------------./conf/proxyurl
//路由配置
module.exports = {
datasur:[{
“src”: “/apis”,
“target”: “https://www.k5003.com”,
“changeOrigin”: true
}, {
“src”: “/kapis”,
“target”: “http://127.0.0.1:10000”,
“changeOrigin”: true
}, {
“src”: “/unicom2”,
“target”: “http://115.231.156.62”,
“changeOrigin”: true
}, {
“src”: “/king”,
“target”: “http://127.0.0.1:8088”,
“changeOrigin”: true
}]
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

k5003

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

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

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

打赏作者

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

抵扣说明:

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

余额充值