使用express来代理服务的方法
作者:纪轻昀 发布时间:2024-05-03 15:56:50
标签:express,代理,服务
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"
}
来源:https://segmentfault.com/a/1190000019540261


猜你喜欢
- 一、前言有两种应用场景需要用到数据生成器,一种是需要测试数据库性能,比如在100万条和1000万条记录的时候对比查询或更新语句执行耗时,一种
- 首先来看,ASP读取ACCESS数据库。代码如下:<% @language="VBScript"&nbs
- 1.配置环境安装python3安装python3-pip通过pip安装Django**如果需要使用Jinja模板,需要通过pip安装djan
- 前言对于使用Vue的前端而言,watch、computed和methods三个属性相信是不陌生的,是日常开发中经常使用的属性。但是对于它们的
- 花了几个小时给小表弟普及了一下OOP的知识,索性总结一下写篇文章。OOP全称Object Oriented Programming即面向对象
- 回想自己从事Web方面的开发已经有6-7年,对于各种Web技术都已经非常熟悉.可是,身为程序员的我对于制作Web表单界面的事着实心痛。心痛1
- 要实现这个功能,可能有多种方法,我在这里记录下一个比较方便的方法:import pandas as pdwriter = pd.ExcelW
- 题目:如何在python中实现整数的二进制循环移位?概述在python中,可以通过<<以及>>运算符实现二进制的左移
- 例如,如果列a被定义为unique,并且值为1,则下列语句有同样的效果,也就是说一旦出入的记录中存在a=1的情况,直接更新c = c + 1
- 在项目开发中,定时执行php脚本对数据库进行数据更新操作的需求非常常见,下面就以win系统为例进行操作。以下配置需要保证php环境可以正常运
- 1.下载MySQL Community Server 5.7.16 安装好2.进去mysql安装目录的bin目录下,在文件地址栏输入cmd回
- 本文实例讲述了python使用 request 发送表单数据操作。分享给大家供大家参考,具体如下:# !/usr/bin/env pytho
- 这里我们将分析一下如何开启和使用smarty缓存,如何清除smarty缓存以及smarty的全局缓存,部分缓存,局部缓存三种缓存机制。一、开
- 最近很多小伙伴在尝鲜chatGPT,使用中遇到网站的1020的错误码,博主也遇到了相似的问题,不同的人运行环境不一样,可能解决方案不一样,接
- 一、创建矩阵的方法import numpy as np# 1直接创建mat=np.mat("1 2 3;4 5 6;7 8 9&q
- 发现问题项目需要,需要删除文件夹中的冗余图片。涉及图像文件名的操作,图像文件名存储在list中python list删除元素有remove(
- 本文实例讲述了Go语言map字典用法。分享给大家供大家参考。具体分析如下:这段代码生成了青岛、济南、烟台三个城市拼音和汉字的对照字典,根据拼
- 1. floor 函数1.1 floor 函数的作用floor() 函数的作用是返回小于等于该值的最大整数举例说明:select floor
- 1、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF-8编码为
- 一、假如训练集表现不好1.尝试新的激活函数ReLU:Rectified Linear Unit图像如下图所示:当z<0时,a = 0,