首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用createProxyMiddleware和create react应用程序的动态pathRewrite

使用createProxyMiddleware和create react应用程序的动态pathRewrite
EN

Stack Overflow用户
提问于 2021-01-26 15:28:06
回答 1查看 441关注 0票数 1

根据https://create-react-app.dev/docs/proxying-api-requests-in-development/,我的Create React应用程序中包含以下内容

src/setupProxy.js

代码语言:javascript
复制
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:5000',
      changeOrigin: true,
    })
  );
};

这可以很好地工作,并将所有请求发送到我在端口5000上运行的nodejs应用程序。但是,我希望以某种方式截取请求,并将路径重写为url查询字符串格式。

我在nodejs服务器上运行了json-server,它需要使用这种格式的/api/cheeses?cheeseno=12对请求进行不同的格式化

例如

代码语言:javascript
复制
'/api/cheese/12' => `/api/cheeses?cheeseno=12` 

我在这个页面https://www.npmjs.com/package/http-proxy-middleware上遇到了pathRewriterouter,但我不知道如何将它们映射到一起。

稍后随着我的深入,我将需要将嵌套路径路由映射到url查询。

所以

代码语言:javascript
复制
/location/{locationId}/aisle/{aisleid}/cheeses => /api/cheeses?locationId=12&aisleid=123`

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-08-30 01:40:09

代码语言:javascript
复制
const { createProxyMiddleware } = require('http-proxy-middleware');

const rewriteFn = function (path, req) {
  return path.replace('/api/foo', '/api/bar');
};

const options = {
  target: 'http://localhost:3000',
  pathRewrite: rewriteFn,
};

const apiProxy = createProxyMiddleware('/api', options);

rewriteFn是关键

https://github.com/chimurai/http-proxy-middleware/blob/master/recipes/pathRewrite.md#custom-rewrite-function

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65897317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档