nodejs访问两个不同的路由,如何设置一个路由使用代理,一个路由不使用代理?

发布于 2022-09-12 13:03:45 字数 1963 浏览 13 评论 0

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const cors = require('cors');
var app = express();
// app.use(cors({
//     credentials: true, //     optionsSuccessStatus: 200, //     origin: 'http://localhost:8080' // }));
app.use('/', createProxyMiddleware({
    // 代理跨域目标接口
 target: 'http://localhost:59125',
 changeOrigin: true,
 // 修改响应头信息,实现跨域并允许带cookie
 onProxyRes: function(proxyRes, req, res) {
        res.header('Access-Control-Allow-Origin', '*');
 }
    // 修改响应信息中的cookie域名
//  cookieDomainRewrite: ''  // 可以为false,表示不修改
}));
app.use('/build2018', ({
}));
app.use(express.static('./public'));
app.listen(3000, function(){ // 代理接口
    console.log('代理接口启动成功');
})

1、希望http://localhost:3000/使用代理变成http://localhost:59125访问根目录下的文件
2、访问http://localhost:3000/bulid不使用代理,直接加载根目录下问题

2020年10月22日新改

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
const router = express.Router();
let buildRouter = require('./router/build.js');
let options = {
    // 代理跨域目标接口
 target: 'http://localhost:59125',
 changeOrigin: true,
 // 修改响应头信息,实现跨域并允许带cookie
 onProxyRes: function(proxyRes, req, res) {
        res.header('Access-Control-Allow-Origin', '*');
 }
    // 修改响应信息中的cookie域名
//  cookieDomainRewrite: ''  // 可以为false,表示不修改
}
var exampleProxy = createProxyMiddleware(options); //开启代理功能,并加载配置
app.use('/build2020', buildRouter);
app.use('/', exampleProxy);
app.use(express.static('./public'));
app.listen(3000, function(){ // 代理接口
 console.log('代理接口启动成功');
})
// 例如 api接口为 http://192.168.31.65:8000/api/getid/a
// 实际应该请求的地址为 http://192.168.31.65:3000/api/getid/a
var express = require('express');
let router = express.Router();
router.post('/', (req, res, next)=>{
    next();
});
module.exports = router;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笔落惊风雨 2022-09-19 13:03:45

这样写摆明是先走 '/' 这个中间件了呀。

image.png

所以你应该把 'build2018' 提到前面

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文