我正在开发一个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)
感谢您的所有建议。
我正在寻找最佳实践。
突出两个问题
发布与获取
您正在通过发布端点提供api。将其更改为get
。
app.get('/api/customers', (req, res) => {res.json(vehicleList);});
获取
在用户界面中,它表明您应该从localhost:5000进行获取。我认为您的代理正在重新路由3000-> 5000,因此希望这不是问题。但是,我将仔细检查并尝试访问localhost:3000 / api / customers url(将其复制并粘贴到url栏中),看看是否看到json。 也 例如app.use('/', express.static('public'));
app.post('/api/customers', (req, res) => {
res.json(vehicleList);
});