阅读 Fetch Promise 的正文

编程入门 行业动态 更新时间:2024-10-09 04:19:09

阅读 Fetch Promise 的<a href=https://www.elefans.com/category/jswz/34/1771445.html style=正文"/>

阅读 Fetch Promise 的正文

我有以下用于上传到谷歌云存储的快速端点。它工作得很好,来自 google api 的响应给了我一个唯一的文件名,我想将它传回我的前端:

app.post('/upload', (req, res) => {
  var form = new formidable.IncomingForm(),
  files = [],
  fields = [];

  form
    .on('field', function(field, value) {
      fields.push([field, value]);
    })
    .on('file', function(field, file) {
      files.push([field, file]);
    })
    .on('end', function() {
      console.log('-> upload done');
    });
  form.parse(req, function(err, fields, files){
    var filePath = files.file.path;
    bucket.upload(filePath, function(err, file, apiResponse){
      if (!err){
        res.writeHead(200, {'content-type': 'text/plain'});
        res.end("Unique File Name:" + file.name);
      }else{
        res.writeHead(500);
        res.end();
      }
    });
  });

 return;
});

我通过调用一个将文件传递给它的短函数来到达这个端点:

function upload(file) {
  var data = new FormData();
  data.append('file', file);
  return fetch(`upload`,{
    method: 'POST',
    body: data
  });
}

const Client = { upload };
export default Client;

这个函数是这样从我的前端调用的:

Client.upload(this.file).then((data) => {
  console.log(data);
});

最后的

console.log(data)
记录对控制台的响应。但是,我在任何地方都看不到我写的回复(
"Unique File Name:" + file.name
)

如何从客户端的响应正文中检索此信息?

当我控制台时,

data
看起来像这样。记录它:

这是我使用 Postman 将文件发布到端点时得到的响应:

回答如下:

注意你正在处理一个 Response 对象。您基本上需要使用 Response.json()

Response.text()
(或通过其他方法)
read
响应流才能查看您的数据。否则,您的响应主体将始终显示为锁定的可读流。例如:

fetch('https://api.ipify?format=json')
.then(response=>response.json())
.then(data=>{ console.log(data); })

如果这给您带来意想不到的结果,您可能需要使用 Postman 检查您的回复。

更多推荐

阅读 Fetch Promise 的正文

本文发布于:2024-05-13 16:47:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760148.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:正文   Fetch   Promise

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!