Я уверен, что у этого есть простой ответ, но для жизни я не могу понять, как это сделать.
У меня есть следующая экспресс-конечная точка для загрузки в хранилище Google Cloud. Он отлично работает, и ответ от 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);
});
Этот final console.log(data)
регистрирует ответ на консоль. Тем не менее, я не вижу в любом случае ответа, который я написал ("Unique File Name:" + file.name
)
У кого-нибудь есть предложения по тому, как я могу получить эту информацию из тела ответа на стороне клиента?
РЕДАКТИРОВАТЬ:
data
выглядят так, когда я console.log:
EDIT 2:
Это ответ, который я получаю, когда я отправляю файл в свою конечную точку, используя Postman: