Node http-proxy-middleware 代理转发

本文介绍了如何在Node.js的Express应用中使用http-proxy-middleware库进行API代理转发,确保请求能够正确到达目标服务器(http://192.168.95.152:8765)。重点强调了代理配置必须置于404错误处理器之前,以避免请求被误判为404。示例代码展示了具体的配置方法,并给出了一个简单的AJAX请求示例,通过代理访问'/api/restful/ipUtil/getIpAdress'接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Node http-proxy-middleware 代理转发

我的代码:

var express = require('express');
var path = require('path');
//var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
//var proxy = require('http-proxy-middleware');
const { createProxyMiddleware } = require('http-proxy-middleware');



var app = express();
//这段代码必须放在404 error handler配置之前否则先返回404,无法代理转发
//module.exports = function (app) {
app.use(
    "/api",
    createProxyMiddleware(
        {
            target: "http://192.168.95.152:8765",//目标服务器
            changeOrigin: true,
            //ws: true, // 代理websocket
            pathRewrite: {
                "/api": ""
            }/*,
            router: {
                // 当请求localhost:3000/api时,会转发到http://localhost:8080,
                'localhost:5000/api': 'http://localhost:8765'
            }*/
        }
    )
);
//};


// uncomment after placing your favicon in /public
// app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
app.use('/', express.static(path.resolve(__dirname, '../html')));
app.use('/', express.static(path.resolve(__dirname, '../')));


// catch 404 and forward to error handler
app.use(function (req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});


module.exports = app;
静态html页面中的ajax请求:
省略html内容,直接展示js
<!-- Page JS -->
 <script>
     window.App.run();



     $.get("http://localhost:5000/api/restful/ipUtil/getIpAdress?ip=115.115.115.115",function(text){
        alert(text);
     })


</script>

重要的事情说三遍:

代理配置必须放在404 error handler配置之前否则先返回404,无法代理转发。

代理配置必须放在404 error handler配置之前否则先返回404,无法代理转发。

代理配置必须放在404 error handler配置之前否则先返回404,无法代理转发。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值