是否有可能通过反应提供宁静的服务?

问题描述 投票:0回答:1

我正在开发一个Web项目,该项目应使用React框架提供宁静的邮政服务。

Internet上有很多消耗性的休息服务示例。

但是,我想提供宁静的服务。

我尝试了以下操作,

1-提供来自react框架的服务。我看到不可能。

2-提供来自快递的服务,并通过代理与之绑定https://www.youtube.com/watch?v=v0t42xBIYIs

对于此示例,get方法有效,而post方法无效。

我的快递服务器如下。

const express = require('express');
const app = express();

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/api/customers', (req, res) => {

  res.json(req.body);
});


const port = 5000;

app.listen(port, () => `Server running on port ${port}`);

之后,请使用代理并像这样对代码进行反应

  componentDidMount()
  {

      fetch('/api/customers')
      .then(res => res.json())
      .then(customers => this.setState({customers}, () => console.log('Customers fetched...', customers)));

那时我收到以下错误

customers.js:18 GET http://localhost:3000/api/vehicles 500 (Internal Server Error)

感谢您的所有建议。

我正在寻找最佳实践。

javascript reactjs rest express post
1个回答
0
投票

突出两个问题

发布与获取

您正在通过发布端点提供api。将其更改为get

app.get('/api/customers', (req, res) => {res.json(vehicleList);});

获取

在用户界面中,它表明您应该从localhost:5000进行获取。我认为您的代理正在重新路由3000-> 5000,因此希望这不是问题。但是,我将仔细检查并尝试访问localhost:3000 / api / customers url(将其复制并粘贴到url栏中),看看是否看到json。

当然有可能从与您的api相同的基本URL中提供静态反应包。

例如

app.use('/', express.static('public')); app.post('/api/customers', (req, res) => { res.json(vehicleList); });

© www.soinside.com 2019 - 2024. All rights reserved.