使用节点和代理 API 请求响应服务器

凯文

我对 React 比较陌生,正在尝试将应用程序部署到 Openshift 环境。该应用程序由一个 React JS 前端组成,它向 nodejs 后端 Restful api 进行 API 调用。至少是这个想法。

我发现的大多数方法都建议使用 docker,但我不知道从哪里开始。create-react-app单证给出了一个节点/ Express服务器的一个例子来呈现的index.html,其中我更熟悉,并得到了工作,但我似乎无法代理设置路由的API调用后端.

我最初尝试在 package.json 中设置代理,但是没有用。然后我发现express-http-proxy哪个看起来很有希望,但无法让它发挥作用。

我的前端服务器看起来像这样:

const express = require('express');
const path = require('path');
const app = express();
const proxy = require('express-http-proxy');
const PORT = process.env.OPENSHIFT_NODEJS_PORT || 8080;
const API_PROXY_URL = process.env.APIURL

app.use(express.static(path.join(__dirname)));

app.use('/api', proxy(API_PROXY_URL));

app.get('/*', (req, res) => {
  res.sendFile(path.join(__dirname, 'index.html'));
});

app.listen(PORT, () => {
  console.log(`Server Started on port ${PORT}`);
  console.log(`Proxy in use of ${API_PROXY_URL}`);
});

我有一个通用的 api 函数,它使用 axios 进行调用:

export function apiCall(method, path, data) {
  return new Promise((resolve, reject) => {
    return axios[method.toLowerCase()](path, data)
      .then(res => {
        return resolve(res.data);
      })
      .catch(err => {
        return reject(err.response.data.error);
      });
  });
}

例如,我当我尝试在其标志是试图做一个post调用<<REACTURL>>/api/auth/signin的时候,我希望它发送到<<APIURL>>/api/auth/signin

我觉得我错过了一些非常明显的东西。

凯文

我无法让它工作,因为我想最终在 API 请求中声明完整的 URL 以使其工作。不漂亮,但可以完成工作:

export function apiCall(method, path, data) {
  let url = <<APIURL>> + path
  return new Promise((resolve, reject) => {
    return axios[method.toLowerCase()](url, data)
      .then(res => {
        return resolve(res.data);
      })
      .catch(err => {
        return reject(err.response.data.error);
      });
  });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何同时使用historyApiFallback和代理远程api请求设置Webpack开发服务器?

无法捕获对节点服务器的 POST 请求的响应

节点服务器,套接字,请求和响应超时

从API传递响应作为节点服务器的响应抛出

从Laravel框架开发的API(托管在Apache服务器中)在收到Android和iOS移动应用的请求时未得到任何响应

开发服务器和API之间的ECONNRESET代理错误

如何使用 Fetch 和 Express JS 配置服务器 API 以接收请求正文?

使用铁路由器的流星服务器 api 返回 HTML 而不是响应

对ASP.NET Web API的请求的“透明”服务器端代理

如何将常量值和api get请求一起发送到节点服务器

Survey Monkey API节点服务器的GET请求返回未经授权的401错误

如何从节点服务器向Flask API发出GET请求

Node.js:使用IPC在主服务器和工作服务器之间进行请求/响应

API代理服务器

CakePHP API 服务器响应时间和 FCM 推送通知

使用shopify API时,服务器返回HTTP响应代码:URL的401

React / Axios API获取请求问题(CORS和内部服务器错误500)

Docker和身份服务器4,api,角度:无法分配请求的地址

带有网关的 VNET 中的 Azure API 管理(502 - Web 服务器在充当网关或代理服务器时收到无效响应)

OpenID + API REST + 节点服务器

Javascript API GET 请求失败,代码为 404。截断的服务器响应

对asp.net Web API的POST请求达到某些限制时,服务器无响应

使用节点创建非REST JSON API服务器

使用Gmail API将请求正文写入服务器时出错

方法在API请求上使用(用户或服务器)哪个IP?

如何使用Azure Api管理将所有选项请求转发到后端服务器

服务器如何检测使用访存API发出的请求?

如何从文件列表中删除图像并使用api请求将其上传到服务器上?

REST Api服务器挂起大量请求(使用c#HttpClient)