Express服务器未向客户端发送响应(使用获取)

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

我在服务器端使用express,并且正在使用fetch从客户端向服务器发出发布请求。

我发送到服务器的数据正在发送并显示。服务器响应中的数据无法在客户端的任何位置看到。

这是我在服务器端的代码:

app.post('/info',
ensureAuthenticated, function(req,res){
   console.log(req.body)
   var tryFetch = {myString: 'I am working fetch'};

   res.setHeader('Content-Type', 'application/json');
   res.end(JSON.stringify(tryFetch));
})

客户端如下:

fetch("/info", {
    method: "post",
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },

    body: JSON.stringify({
        name : e.target.parentElement.username,
        socketID : e.target.parentElement.socketID,
        id : e.target.parentElement.id,
    })
})
.then( (response) => { 
    console.log(response)
}); 

[i console.log()响应时,控制台显示:

Response {type: "basic", url: "http://localhost:4000/info", redirected: false, status: 200, ok: true, …}

type: "basic"
url: "http://localhost:4000/info"
redirected: false
status: 200
ok: truestatusText: "OK"
headers: Headers
__proto__: Headersbody: (...)
bodyUsed: false
__proto__: Response

我不知道我在这里缺少什么,并且无法将数据从服务器发送到客户端。有人可以帮我吗?将不胜感激。谢谢您的时间

javascript node.js express post fetch
1个回答
0
投票

您应该选择res.sendres.json而不是res.end

res.end()用于在没有任何数据的情况下快速结束响应。

app.post('/info',
enter code hereensureAuthenticated, function(req,res){
   console.log(req.body)
   var tryFetch = {myString: 'I am working fetch'};

   res.setHeader('Content-Type', 'application/json');
   res.send(JSON.stringify(tryFetch));
})
© www.soinside.com 2019 - 2024. All rights reserved.