React.js axios发布响应未返回任何内容

时间:2020-05-01 16:14:33

标签: node.js reactjs axios

我正在使用axios.post()编辑我的Reactjs应用程序后端的mysql数据库。数据通过发布请求到达后端罚款。但是我需要知道发布请求何时完成,并从中返回一些数据,以了解后端代码是否正确运行。我尝试了以下操作,其中newEdit是一个对象,该对象具有后端所需的信息

axios
 .post('http://ip:3001/edit_table', newEdit)
 .then((response) => { 
     console.log("response: ",response);
 }, (error) =>{
     console.log("error: ",error)
 });

两个控制台日志语句均未运行。再次,该对象确实可以很好地到达路由的nodejs文件,我只是无法获得任何形式的响应。有人知道发生了什么吗?谢谢。

2 个答案:

答案 0 :(得分:0)

确保您的后端正在将响应返回给客户端。 您可以使用res.sendres.json。 res.send([body])用于向客户端发送HTTP响应,而res.json(body)用于发送JSON响应。

res.send([body])

res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<p>some html</p>');

示例:

var express = require('express')
var app = express()

app.get('/', function (req, res) {
    res.send('hello world')
})

app.listen(3000)

res.json([body])

res.json(null)
res.json({ user: 'tobi' })
res.status(500).json({ error: 'message' })

示例:

var express = require('express')
var app = express()

app.get('/', function (req, res) {
    res.json({ success: true })
})

app.listen(3000)

参考:

Express API参考

Node.js响应对象方法res.send and res.json

答案 1 :(得分:0)

如果您的后端代码还可以并返回响应,那么您可以按照下面的示例进行操作。

const updateData = async () => {
            try {
                const response = await axios.put(`https://jsonplaceholder.typicode.com/posts/${id}`, {
                    method: 'PUT',
                    body: JSON.stringify({
                        id: id,
                        title: post.title,
                        body: post.body,
                        userId: 1
                    }),
                    headers: {
                        "Content-type": "application/json; charset=UTF-8"
                    }
                })
                    .then(response => response.json())
                    .then(json => console.log(json));
                console.warn(response.data);
            } catch (error) {
                console.warn(error);
            }
        };