Я использую LoopBack 2 и пытаюсь получить файл с сервера. Если я делаю это, как описано здесь , это просто работает, но если я пытаюсь использовать async / await с обещаниями, это не так. Вместо этого он возвращает объект JSON, такой как
{
"type": "Buffer",
"data": [
123,
13,
10,
...
]
}
И "content-type"
заголовок в ответе установлен на "application/json; charset=utf-8"
Вот мой код:
MyModel.getFile = async () => {
const fs = require('fs');
const path = require('path');
const filePath = path.join(__dirname, 'file.json');
const file = await new Promise(resolve => fs.readFile(filePath, (err, data) => resolve(data)));
return [file, 'application/octet-stream'];
};
MyModel.remoteMethod('getFile ', {
description: 'sends the file to the client',
returns: [
{
arg: 'body',
type: 'file',
root: true
},
{
arg: 'Content-Type',
type: 'string',
http: {
target: 'header'
}
}
],
http: {
path: '/file',
verb: 'get'
}
});
Что-то не так, что я делаю, или LoopBack просто не может устанавливать заголовки, используя обещания в удаленных методах?