Como armazenar arquivos com metadados no LoopBack?

O que eu quero fazer: Ter um formulário html, com uma entrada de arquivo dentro. Quando um arquivo é escolhido, a entrada do arquivo deve carregá-lo e obter uma identificação de arquivo. Assim, quando o formulário é enviado, a identificação do arquivo é publicada com o formulário e gravada no banco de dados.

Versão mais curta:Quero armazenar metadados (id, por exemplo) com meus arquivos.

Parece simples, mas luto para fazer isso no LoopBack.

Houve algumas conversas (1, 2 ) sobre esse tópico, e nenhum deles parecia levar a uma solução. Por isso, achei que esse seria um bom lugar para encontrar um de uma vez por todas.

A solução mais simples seria usar relações de modelo, mas o LoopBack não suporta relações com o serviço de armazenamento de arquivos. Colisão. Portanto, temos que seguir um modelo persistente chamadoFile por exemplo, e substitua a criação padrão, exclua para que ela salve e exclua do modelo de armazenamento de arquivos que eu nomeeiStorage.

Minha configuração até agora:

Eu tenho um modelo / api / Storage conectado a umserviço de armazenamento de loopback e está salvando o arquivo com sucesso no sistema de arquivos local.Eu tenho um PersistedModel conectado ao Mongo com metadados de arquivo:name,size, url eobjectIdEu tenho um gancho remoto configurado antescreate para que o arquivo possa ser salvo primeiro e depoisurl pode ser injetado emFile.create()

Eu estou lá, e de acordo comesta página LoopBack, Eu tenho o ctx que deve ter o arquivo dentro:

File.beforeRemote('create', function(ctx, affectedModelInstance, next) {})`

O que éctx?

ctx.req: Objeto de solicitação expressa.
ctx.result: Objeto de resposta expressa.

Ok, agora estou na página do Express, bastante perdida, e ela diz algo sobre um 'middleware de análise de corpo', que não tenho idéia do que possa ser.

Sinto que estou perto da solução,Qualquer ajuda seria apreciada. Esta abordagem está correta?

questionAnswers(7)

yourAnswerToTheQuestion