使用express来代理服务的方法


Posted in Javascript onJune 21, 2019

nodejs和nginx都可以反向代理,解决跨域问题。

本地服务

const express = require('express')
const app = express()

//如果它在最前面,后面的/开头的都会被拦截
app.get('/', (req, res) => res.send('Hello World!'))

app.use(express.static('public'));//静态资源
app.use('/dist', express.static(path.join(__dirname, 'public')));//静态资源

//404
app.use('/test', function (req, res, next) {
  res.status(404).send("Sorry can't find that!");
});

app.use(function (req, res, next) {
  //TODO 中间件,每个请求都会经过
  next();
});

app.use(function (err, req, res, next) {
  //TODO 失败中间件,请求错误后都会经过
  console.error(err.stack);
  res.status(500).send('Something broke!');
  next();
});

app.listen(4000, () => console.log('Example app listening on port 4000!'))

与request配合使用

这样就将其它服务器的请求代理过来了

const request = require('request');
app.use('/base/', function (req, res) {
  let url = 'http://localhost:3000/base' + req.url;
  req.pipe(request(url)).pipe(res);
});

使用http-proxy-middleware

const http_proxy = require('http-proxy-middleware');
const proxy = {
 '/tarsier-dcv/': {
  target: 'http://192.168.1.190:1661'
 },
 '/base/': {
  target: 'http://localhost:8088',
  pathRewrite: {'^/base': '/debug/base'}
 }
};

for (let key in proxy) {
 app.use(key, http_proxy(proxy[key]));
}

监听本地文件变化

使用nodemon插件。

--watch test指监听根目录下test文件夹的所有文件,有变化就会重启服务。

"scripts": {
 "server": "nodemon --watch build --watch test src/server.js"
}

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

Javascript 相关文章推荐
给网站上的广告“加速”显示的方法
Apr 08 Javascript
Jquery iframe内部出滚动条
Feb 11 Javascript
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
javascript 构造函数方式定义对象
Jan 02 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
JavaScript识别网页关键字并进行描红的方法
Nov 09 Javascript
微信小程序 下拉菜单简单实例
Apr 13 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
js实现上传图片并显示图片名称
Dec 18 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
react+redux仿微信聊天界面
Jun 21 #Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 #jQuery
jQuery事件委托代码实践详解
Jun 21 #jQuery
Vue.js中的extend绑定节点并显示的方法
Jun 20 #Javascript
微信小程序动态显示项目倒计时
Jun 20 #Javascript
微信小程序实现日期格式化和倒计时
Nov 01 #Javascript
微信小程序实现商城倒计时
Nov 01 #Javascript
You might like
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
php实现简单洗牌算法
2013/06/18 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Python实现把类当做字典来访问
2019/12/16 Python
python中提高pip install速度
2020/02/14 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
机械系大学毕业生推荐信
2013/11/27 职场文书
社团活动总结格式
2014/08/29 职场文书
终止劳动合同协议书
2014/10/05 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
简单的辞职信模板
2015/05/12 职场文书
退伍军人感言
2015/08/01 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL