Как хранить файлы с метаданными в LoopBack?
Что я хочу сделать: иметь HTML-форму с входным файлом внутри. Когда файл выбран, входной файл должен загрузить файл и получить идентификатор файла, поэтому при отправке формы идентификатор файла публикуется вместе с формой и записывается в базу данных.
Более короткая версия:Я хочу хранить метаданные (например, id) с моими файлами.
Звучит просто, но я изо всех сил пытаюсь сделать это в LoopBack.
Там было пару разговоров (1, 2 ) об этой теме, и ни один из них, похоже, не привел к решению, поэтому я подумал, что это может быть хорошим местом, чтобы найти один раз и навсегда.
Простейшим решением было бы использование отношений модели, но LoopBack не поддерживает отношения со службой хранения файлов. Удар. Таким образом, мы должны пойти с постоянной моделью по имениFile
например, и переопределить создание, удаление по умолчанию, чтобы оно сохраняло и удаляло из имеющейся у меня модели хранилища файлов с именемStorage
.
Мои настройки пока:
У меня есть модель / API / Storage, который подключен кслужба хранения с обратной связью и успешно сохраняет файл в локальной файловой системе.У меня есть PersistedModel, подключенная к Mongo с метаданными файла:name
,size
, url
а такжеobjectId
У меня есть удаленный крюк, установленный доcreate
поэтому файл может быть сначала сохранен, а затемurl
может быть введен вFile.create()
Я там и согласноэта страница LoopBackУ меня есть ctx, который должен иметь файл внутри:
File.beforeRemote('create', function(ctx, affectedModelInstance, next) {})`
какойctx
?
ctx.req
: Объект экспресс-запроса.ctx.result
: Объект Express Response.
Хорошо, теперь я нахожусь на странице Express, довольно потерян, и это говорит о «промежуточном программном обеспечении для разбора тела», которое я понятия не имею, что это может быть.
Я чувствую, что я близок к решению,любая помощь будет оценена, Правильный ли этот подход?