Javascript React AXIOS post-简单测试不工作(快速)
我有一个内置的react前端,我使用一个简单的样板来连接express和react。似乎有太多不同的方法来设置一个简单的RESTful api,我都迷路了。我正在尝试做一些非常简单的后端到前端的通信 我让express执行一个get请求,将其推到后面,并使用Axios获取数据: AccountsDB只是内部测试的基本JSON数据Javascript React AXIOS post-简单测试不工作(快速),javascript,json,reactjs,express,axios,Javascript,Json,Reactjs,Express,Axios,我有一个内置的react前端,我使用一个简单的样板来连接express和react。似乎有太多不同的方法来设置一个简单的RESTful api,我都迷路了。我正在尝试做一些非常简单的后端到前端的通信 我让express执行一个get请求,将其推到后面,并使用Axios获取数据: AccountsDB只是内部测试的基本JSON数据 [ { "id": "5b68d6f13e2c773581221620", "index": 0, "firstName": "Josefa
[
{
"id": "5b68d6f13e2c773581221620",
"index": 0,
"firstName": "Josefa",
"lastName": "Lynch",
"pin" : 1234
}
]
在我的express index.js中,我有一个简单的GET
app.get('/api/getAccounts', (req, res) => res.json(AccountsDB));
在我的React中,我使用axois获取数据:
componentDidMount () {
axios.get ('/api/getAccounts')
.then (res => this.setState({ Accounts : res.data}));
}
完全有效。我在主组件中显示帐户。
在组件内部,我还有一个论坛可以“创建”一个新帐户,并将其推送到AccountsDB文件中进行内部测试(我正在学习后端,之后将连接mongoDB)
我的POST方法逻辑(可在此处找到):
我把它贴在一个按钮上发布数据。我打开PostMan,导航到“/api/putAccounts”,什么也看不到
我不明白如何准确地将数据收集到express中。我愚蠢的尝试:
app.post('/api/putAccounts', (req,res) => {
// res.send("sent!") // post man see's this?
// var account = req.account;
// res.send(req.firstName);
});
更详细地阐述…
React应用程序已打开->本地主机:3000
Express应用程序已打开->本地主机:8080
使用网页包和代理:
devServer: {
port: 3000,
open: true,
proxy: {
'/api': 'http://localhost:8080'
}
在“”下(在我的react应用程序中),我有一个按钮,上面有axios.post
,它将firstName:Fred和lastName:Flintstone发送到'/api/putAccounts'
我正试图让我的express服务器捕获帖子,以便我可以对其进行操作并将其添加到数据库中
在我进入数据库之前,我要确保我理解POST是如何工作的(我理解get)。所以我试图获取数据,并将其显示在某处,这就是我在postman中查看数据的意思
也许我在这件事上完全错了,所以为什么会感到困惑 在“邮递员”中,在发出post请求时,您需要在req正文中发送firstName和lastName,如下所示
{
"firstName": "Hi",
"lName": "Hello"
}
因此,您可以执行req.body.firstName以获得其下面的值
app.post('/api/putAccounts', (req,res) => {
const fName = req.body.firstName;
const lName = req.body.lastName;
res.json({"fName":fName, "lastName": lName});
});
您需要在ServerSide中使用req.body.firstName和req.body.lastName访问它。这似乎对我不起作用,我只是在postman中有一个空对象“{}”。当我按下我创建的“POST”按钮时,我的控制台会显示{data:{…},status:200,statusText:“OK”,标题:{…},配置:{…},}。为什么要在POST请求中发送空对象。这没有道理。您需要了解post请求的目的您希望我们做什么?首先,确保您的后端工作正常。当你试着与邮递员打交道时,你是否设置了一个
body
?@RobertOchinski,你的后端和前端实际上是两个独立的东西。您可以通过React应用程序从前端发送数据。这很好,但是人们通常在不编写任何前端代码的情况下测试后端。邮递员用于测试,无需前端。因此,当使用Postman进行测试时,您需要自己为post请求提供数据。首先编写后端,使用Postman进行测试,然后编写前端代码,然后从前端进行测试。
app.post('/api/putAccounts', (req,res) => {
const fName = req.body.firstName;
const lName = req.body.lastName;
res.json({"fName":fName, "lastName": lName});
});