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 function、指针及内置对象
Feb 19 Javascript
浅谈Javascript面向对象编程
Nov 15 Javascript
javascript获取作用在元素上面的样式属性代码
Sep 20 Javascript
js 取时间差去掉周六周日实现代码
Dec 25 Javascript
JQuery实现用户名无刷新验证的小例子
Mar 22 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
javascript将DOM节点添加到文档的方法实例分析
Aug 04 Javascript
javascript实现瀑布流加载图片原理
Feb 02 Javascript
JS简单实现无缝滚动效果实例
Aug 24 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
Vue使用axios出现options请求方法
May 30 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 fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
python实现数组插入新元素的方法
2015/05/22 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
详解重置Django migration的常见方式
2019/02/15 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
财务人员个人求职信范文
2013/12/04 职场文书
开门红主持词
2014/04/02 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
信用卡工资证明范本
2015/06/19 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL