У меня следующий сценарий:
- У меня есть служба обратной связи (Core) с удаленным методом POST / Core / {id} / upload (доступный дляpublic)
Core.remoteMethod ('upload', {принимает: [{arg: 'id', тип: 'строка', описание: 'ID экземпляра сущности.', требуется: true, http: {source: 'path'}}, {arg: 'req', тип: 'object', обязательный: true, описание: 'Объект запроса.', http: {source: 'req'}}], возвращает: {arg: 'output', тип: '$ new_EntityPostResponseProps', root: true, description: 'Возвращает экземпляры сущности, которые были обновлены.'}, description: 'Загрузить ресурс в указанный ресурс.', задокументировано: true, http: {verb: 'patch', path: '/: id / upload'}});
У меня есть другая служба обратной связи (сущности), которая имеет удаленный метод
POST / Entities / {id} / upload (недоступен для общего доступа)
Entities.remoteMethod ('upload', {accept: [{arg: 'id', тип: 'string', описание: 'ID экземпляра сущности.', обязательно: true, http: {source: 'path'}}, {arg: 'user', тип: 'string', обязательно: true, описание: 'ID экземпляра пользователя.', http: {source: 'query'}}, {arg: 'files', тип: 'string',required: true, описание: 'The request.', http: {source: 'form'}}], возвращает: {arg: 'output', тип: 'Entities', root: true, description: 'Возвращает экземпляр сущностиэто было обновлено. '}, описание:' Обновить обновленный экземпляр сущности. ', задокументировано: true, http: {verb:' patch ', путь:' /: id / upload '}});
я использую
loopback-connector-swagger для соединения двух служб я использую
multer для обработки запросов multipart / form-data
У меня следующая проблема:
- я загружаю файл, используя POST / Core / {id} / upload конечная точка
- отправленный файлполучен в базовой службе в следующем формате:
{имя поля: 'файл', оригинальное имя: 'quickstart.mp4', кодировка: '7bit', тип mimetype: 'video / mp4', буфер:, размер: 29}
Затем я делаю JSON.stringify (файл) и отправляю в виде поля
string через swagger в службу Entities, в службе Entities выполняю JSON.parse для параметра если файл имеет 100 МБ, JSON.stringify приводит к сбою сервера также имеется значительная задержка между ядром и сущностями до полной передачи файла
Как я могупередать запрос, полученный Core, без изменений и без изменений через swagger в службу Entities? (Core должен быть просто сквозной службой, я не должен делать JSON.stringify для файловых данных, я просто хочу передать его вместев службу Entities)
Если я не могу отправить запрос в неизменном виде, я решил, что могу отправить буфер данных файла напрямую в службу Entities, но я не получил его на работу, он отображается как неопределенный.
Предложения иобразцы очень ценятся!
Спасибо!