Можно ли установить заголовки, используя обещания в удаленных методах LoopBack? - PullRequest
0 голосов
/ 29 марта 2019

Я использую 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 просто не может устанавливать заголовки, используя обещания в удаленных методах?

...