Node.js 使用axios发送请求时如何设置代理?

Node.js 使用axios发送请求时如何设置代理?,node.js,reactjs,express,axios,Node.js,Reactjs,Express,Axios,我正在使用一个名为“并发”的包在本地主机上同时运行客户端和服务器。客户端在端口3000上运行,而服务器在端口5000上运行。我在server的package.json中设置了proxy,设置方式如下: "proxy": "https://localhost:5000" const config = { headers: { 'Content-Type': 'application/json' } }; const

我正在使用一个名为“并发”的包在本地主机上同时运行客户端和服务器。客户端在端口3000上运行,而服务器在端口5000上运行。我在server的package.json中设置了proxy,设置方式如下:

"proxy": "https://localhost:5000"
    const config = {
        headers: {
          'Content-Type': 'application/json'
        }
      };

    const res = await axios.post('/api/users', body, config);
但当我以以下方式向客户提出请求时:

"proxy": "https://localhost:5000"
    const config = {
        headers: {
          'Content-Type': 'application/json'
        }
      };

    const res = await axios.post('/api/users', body, config);

上面写着:
POSThttp://localhost:3000/api/users 404(未找到)
。我不明白为什么,但尽管设置了代理,axios仍不断向端口3000而不是端口5000发出请求。问题是什么

据我所知,您需要的是参考Axios开发者文档。暂时。


我让它正常工作了。我所做的是:

1) 更改axios.post('/api/users',body,config)
axios.post('http://localhost:5000/api/users",主体,形态),

2) 然后在服务器端的“用户”快速路由中,通过安装“CORS”npm包添加CORS功能,然后添加以下行:

const router = express.Router();
...
// add these lines
var cors = require('cors');
router.use(cors()); 
...
router.post('/', async (req, res) => {
...
});

我只想说,添加cors的解决方案不是一个解决方案。您需要包括代理
“proxy”:https://localhost:5000“
在package.json中,您可能需要重新启动或执行其他操作——但如果您选择使用cors,您将允许任何人访问您的API。这意味着你的数据库对人们来说是完全开放的。密码、电子邮件、用户等都被泄露了

在我的例子中,我没有很好地检查,似乎调用实际上被转发到代理地址处的api服务器。
检查服务器是否正在运行,以及它是否正在接收您的呼叫。

我遇到了类似的问题,但重新启动在我的情况下有帮助:)杀死dev server和
npm start
或您使用的任何东西。不,这不是问题。这个配置是当你在一个公司代理或其他东西后面时,这只是将本地xhr请求重定向到位于不同端口的后端服务器。我把proxy:localhost:5000放在package.json中,然后放在axios.post('/api/users',body,config)中,这样做是可行的在路由器中,但当我设置调试硬编码时,事情停止了工作。这不是一个好主意。最好有一个配置变量。如果您更改了某些内容,您将对本地产品的所有请求进行硬编码。def不是正确的方法。嗨-我想确认一下,您的意思是重新启动机器,或者只是重新启动服务器?