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 相关文章推荐
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
Mar 05 Javascript
js 动态文字滚动的例子
Jan 17 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
jquery、js操作checkbox全选反选
Mar 12 Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
Sep 01 Javascript
js实现计时器秒表功能
Dec 16 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 excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
详解python时间模块中的datetime模块
2016/01/13 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python 代码调试技巧示例代码
2020/08/11 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
上海微创软件面试题
2012/06/14 面试题
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
会计专业应届生求职信
2013/11/24 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
总结表彰大会主持词
2014/03/26 职场文书
2015年元旦标语大全
2014/12/09 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL