将 reactjs 与 nodejs 连接起来

Connecting reactjs with nodejs

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

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

当我从前端请求后端路由时,该应用程序没有使用代理设置,而是给我一个 Bad request 错误。

我的前端在客户端文件夹中。请帮助。 该项目可以在以下 github link

找到

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

请帮忙

这似乎是一个 cross-origin 问题。有两种方法可以解决节点服务器中的cross-origin个问题,

  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. 只需使用以下 headers
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();
});

NPM 使用配置文件,可以通过命令行 npm config set 添加它。正确设置的关键是设置的拼写。这已经咬了我很多次了!让 npm 在代理后面工作需要设置代理和 https-proxy 设置。关键是要注意 -(破折号)不是 _(下划线)。

打开命令提示符或终端会话并运行以下命令配置 npm 以使用您的网络代理。这些命令使用 domain_name.com 作为地址,使用 8080 作为端口。

npm config set proxy http://domain_name.com:8080
npm config set https-proxy http://domain_name.com:8080