【问题标题】:How to integrate a proxy program in nodejs and redirect localhost:5000/api to localhost:5001 [closed]如何在nodejs中集成代理程序并将localhost:5000 / api重定向到localhost:5001 [关闭]
【发布时间】:2022-06-27 13:58:29
【问题描述】:

在我的项目中,一个 nodejs 和 asp.net core webapi 并存。 clientApp使用http://localhost:5000访问,asp.net core webapi后端使用http://localhost:5001访问。当有后端请求http://localhost:5000/api时,我们想直接redict到http://localhost:5001。

根据 Phil 和 Ninezero90hy 的建议,我使用 http-proxy-middleware 来设置代理 js,并使用命令节点单独执行它。它工作正常。

proxy.js

//proxy setup by using express framework
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();
app.use(
    '/api',
    createProxyMiddleware({
        target: 'http://localhost:5001',
        changeOrigin: true,
        logLevel: 'debug',
        pathRewrite: {
            '^/api': 'http://localhost:5001/api',
        },
    }),
);
app.listen(5000);

我想把这个程序集成到我的项目中,我发现我不能直接这样做。当我启动 web 项目时,执行命令“npm run dev”,它与节点命令环境不同。如何将代理程序放入其中。有人可以在这里提出任何建议。谢谢!

【问题讨论】:

标签: node.js


【解决方案1】:

例如

{
  ...
  "devDependencies": {
    ...
    "http-proxy-middleware": "^2.0.4"
    ...
  }
  ...
}

npm install -D http-proxy-middleware

yarn add http-proxy-middleware --dev

这三种方法产生相同的结果。

SetupProxy.js 文件添加到src 子级。

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {
  app.use(
    '/api/boards',
    createProxyMiddleware({
      target: 'http://localhost:5001',
      changeOrigin: true,
      logLevel: 'debug',
      pathRewrite: {
        '^/api/boards': 'http://localhost:5001/api/boards',
      },
    }),
  );
};

/api/boards 是 api url 示例。
您可以决定更改 api url。

【讨论】:

  • 当我使用'express'环境时它工作正常,但在我的项目中我使用命令'npm run dev',它只是http模块,我如何将此模块功能集成到我的项目中启动 web 项目。谢谢!
猜你喜欢
  • 2022-11-29
  • 2021-09-28
  • 1970-01-01
  • 2022-10-20
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
相关资源
最近更新 更多