将ReactJS与Node.js连接

时间:2019-08-05 05:58:40

标签: node.js reactjs mern

我有一个前端响应和后端节点的应用程序。后端经过邮递员测试,工作正常。前端ui已使用静态数据进行了测试。现在,我已经用react部分设置了一个代理来连接到后端节点。

我的React应用正在端口3000上运行 我的节点在端口5000上运行。

当我从前端请求后端路由时,该应用程序未利用代理设置,而是给我一个错误的请求错误。

我的前端在客户端文件夹中。请提供帮助。 该项目可以在以下github链接上找到

https://github.com/prashantbhat84/mern-contactkeeper

请帮助

2 个答案:

答案 0 :(得分:1)

这似乎是跨域问题。解决节点服务器中跨域问题的方法有两种,

  1. 使用cors节点模块

首先安装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");
});
  1. 仅使用以下标题
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