我有一个前端响应和后端节点的应用程序。后端经过邮递员测试,工作正常。前端ui已使用静态数据进行了测试。现在,我已经用react部分设置了一个代理来连接到后端节点。
我的React应用正在端口3000上运行 我的节点在端口5000上运行。
当我从前端请求后端路由时,该应用程序未利用代理设置,而是给我一个错误的请求错误。
我的前端在客户端文件夹中。请提供帮助。 该项目可以在以下github链接上找到
https://github.com/prashantbhat84/mern-contactkeeper
请帮助
答案 0 :(得分:1)
这似乎是跨域问题。解决节点服务器中跨域问题的方法有两种,
首先安装cors模块。 npm install cors
然后在应用程序中使用它
const Express = require("express");
const BodyParser = require("body-parser");
const Cors = require("cors");
const app = Express();
app.use(Cors());
app.use(BodyParser.urlencoded({ extended: false }));
app.use(BodyParser.json());
app.listen(3001, 'localhost', (err) => {
if(err) {
console.log(err);
process.exit(-1);
}
console.log("Server listen port 8083");
});
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE");
next();
});
答案 1 :(得分:0)
NPM使用配置文件,可以通过命令行npm config set将其添加到其中。正确设置的关键是设置的拼写。现在,这已经让我咬了很多遍!要使npm在代理后面工作,需要设置代理和https-proxy设置。关键是要注意-(破折号)不是_(下划线)。
打开命令提示符或终端会话,然后运行以下命令以将npm配置为与Web代理一起使用。这些命令使用domain_name.com作为地址,使用8080作为端口。
npm config set proxy http://domain_name.com:8080
npm config set https-proxy http://domain_name.com:8080