我的package.json中的"proxy": "http://localhost:3001",express服务器在此端口( 3001 )上运行,但每次我点击来自react的请求时,它都会在运行react应用程序的3000端口上运行
package.json
{
"name": "client",
"version": "0.1.0",
"private": true,
"dependencies": {
"antd": "^3.10.2",
"axios": "^0.18.0",
"dotenv": "^6.1.0",
"http-proxy-middleware": "^0.19.0",
"material-ui": "^0.20.2",
"react": "^16.5.2",
"react-bootstrap": "^0.32.4",
"react-dom": "^16.5.2",
"react-form": "^3.5.6",
"react-redux": "^5.0.4",
"react-router-dom": "^4.3.1",
"react-router-redux": "^5.0.0-alpha.5",
"react-scripts": "2.0.5",
"styled-components": "^4.0.2"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}setupProxy.js
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(proxy('/api/*', { target: 'http://localhost:3001' }));
};发布于 2018-10-30 15:12:42
您可以在index.js中定义端口
const PORT = 3001;并使用
"proxy": { "/*": { "target": "http://localhost:3001" } }在客户端package.json中
对于http-proxy-:安装软件包。创建一个名为setupProxy.js的文件,并在其中使用以下模式
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(proxy('/', { target: 'http://localhost:3001' }));
};记住从客户端package.json中删除旧的代理脚本代码。
发布于 2018-10-30 15:39:34
"proxy": {
"/services": {
"target": "http://localhost:3001",
"changeOrigin": true,
"pathRewrite": {
"^/services": ""
}
}}
npm重新启动
发布于 2020-05-18 18:33:58
如果您使用的是新版本的http-proxy-middleware ("1.X.X"),则代码可能会更改为:
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use('/console/api', createProxyMiddleware({
target: 'http://localhost:8080/',
changeOrigin: true,
pathRewrite: {'^/console/api' : ''}
}));
};换句话说,应该用createProxyMiddleware替换proxy
https://stackoverflow.com/questions/53059039
复制相似问题