node跨域转发 express+http-proxy-middleware的使用


Posted in Javascript onMay 31, 2018

最近公司在尝试前后端分离的开发模式,现有应用是java语言,要从中间拆除一个小的模块来做前后端分离,工具上还是jquery,只不过是流程和分工上的分离,不想在前端的机器上搭建一套java环境,就根据教程搭了一下转发,让本地可以接上开发服务器联调。

为什么要使用node代理转发?

我们要实现前后端分离,然后前端不在自己的电脑上安装tomcat,这时候,我们通过用node搭建服务器,然后转发我们的请求。例如:自己本地是localhost:3000,我们需要访问http://www.example.com(当然,开发过程中,这个应该是你们后台的tomcat的地址), 来做ajax的数据交互。

创建项目

npm init

安装模块

npm install express connect-timeout http-proxy-middleware --save-dev

创建js文件

<!--proxy-server.js-->
const express = require('express');
const timeout = require('connect-timeout');
const proxy = require('http-proxy-middleware');
const app = express();

// 超时时间
const TIME_OUT = 30 * 1e3;

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

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


proxyOption = {
 target: 'http://localhost:8080',
 pathRewrite: {
    '^/api/' : '/' // 重写请求,api/解析为/
  },
  changeOrigoin:true
};

// 静态资源路径
app.use('/', express.static('src/page'));

// 反向代理
app.use('/api/*', proxy(proxyOption));

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery validate使用攻略 第四步
Jul 01 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 Javascript
读Javascript高性能编程重点笔记
Dec 21 Javascript
利用JavaScript实现栈的数据结构示例代码
Aug 02 Javascript
详解AngularJS跨页面传值(ui-router)
Aug 23 Javascript
使用JavaScript实现点击循环切换图片效果
Sep 03 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
浅谈Vue中render中的h箭头函数
Nov 07 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 #Javascript
Node.js笔记之process模块解读
May 31 #Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 #Javascript
用JS实现根据当前时间随机生成流水号或者订单号
May 31 #Javascript
Vue2 轮播图slide组件实例代码
May 31 #Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 #Javascript
JavaScript 中的12种循环遍历方法【总结】
May 31 #Javascript
You might like
GD输出汉字的函数的分析
2006/10/09 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
jquery访问ashx文件示例代码
2014/08/11 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
全面理解Python中self的用法
2016/06/04 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python中xlutils库用法浅析
2020/12/29 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
校园新闻广播稿
2014/01/10 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
学校食堂标语
2014/10/06 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript
python3中apply函数和lambda函数的使用详解
2022/02/28 Python