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实战_读书笔记2 选择器
Jan 22 Javascript
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
Jan 22 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
Mar 27 Javascript
javascript自定义的addClass()方法
May 28 Javascript
手机端转盘抽奖代码分享
Sep 10 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 Javascript
移动端效果之IndexList详解
Oct 20 Javascript
详解js的视频和音频采集
Aug 09 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
vue props 一次传多个值实例
Jul 22 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
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
php构造函数与析构函数
2016/04/23 PHP
PHP7新增函数
2021/03/09 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
python绘制条形图方法代码详解
2017/12/19 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
keras slice layer 层实现方式
2020/06/11 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
关于递归的一道.NET面试题
2013/05/12 面试题
安全生产汇报材料
2014/02/17 职场文书
科技活动周标语
2014/10/08 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
2015年药店工作总结
2015/04/20 职场文书
给领导敬酒词
2015/08/12 职场文书
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS