为创建 React 应用程序设置代理服务器
Set up proxy server for create react app
我已经使用 create-react-app 和 运行 以及 npm run eject
脚本启动了一个 React 应用程序,以获取对所有文件的访问权限。之后我安装了 express 并创建了 server.js
文件,该文件与 package.json
文件
处于同一级别
这些是 server.js
文件内容:
const express = require('express');
const app = express;
app.set('port', 3031);
if(process.env.NODE_ENV === 'production') {
app.use(express.static('build'));
}
app.listen(app.get('port'), () => {
console.log(`Server started at: http://localhost:${app.get('port')}/`);
})
这里没什么特别的,只是为将来需要使用机密的 api 代理设置,因为我不想暴露我的 api。
之后,我在 package.json
文件中添加了 "proxy": "http://localhost:3001/"
。我现在陷入困境,因为我需要弄清楚如何正确启动我的服务器并在开发模式下使用此 server.js
文件,然后在生产模式下使用。
理想情况下,如果我们可以使用多个代理也很好,即 /api
和 /api2
您不必将您的 server.js 弹出到 运行。你可以 运行 它与 node server.js
一起 create-react-app
.
即使在弹出以启动您的开发服务器后,您仍然可以 npm start
。
至运行 /api1
和/api2
,您只需在server.js
文件中处理它,它应该可以正常工作。您需要匹配 server.js
中的 port
和 package.json
内 proxy
设置中的 port
- 在这种情况下,它应该是 "proxy": "http://localhost:3031"
我已经使用 create-react-app 和 运行 以及 npm run eject
脚本启动了一个 React 应用程序,以获取对所有文件的访问权限。之后我安装了 express 并创建了 server.js
文件,该文件与 package.json
文件
这些是 server.js
文件内容:
const express = require('express');
const app = express;
app.set('port', 3031);
if(process.env.NODE_ENV === 'production') {
app.use(express.static('build'));
}
app.listen(app.get('port'), () => {
console.log(`Server started at: http://localhost:${app.get('port')}/`);
})
这里没什么特别的,只是为将来需要使用机密的 api 代理设置,因为我不想暴露我的 api。
之后,我在 package.json
文件中添加了 "proxy": "http://localhost:3001/"
。我现在陷入困境,因为我需要弄清楚如何正确启动我的服务器并在开发模式下使用此 server.js
文件,然后在生产模式下使用。
理想情况下,如果我们可以使用多个代理也很好,即 /api
和 /api2
您不必将您的 server.js 弹出到 运行。你可以 运行 它与 node server.js
一起 create-react-app
.
即使在弹出以启动您的开发服务器后,您仍然可以 npm start
。
至运行 /api1
和/api2
,您只需在server.js
文件中处理它,它应该可以正常工作。您需要匹配 server.js
中的 port
和 package.json
内 proxy
设置中的 port
- 在这种情况下,它应该是 "proxy": "http://localhost:3031"