¿Cómo almacenar archivos con metadatos en LoopBack?

Lo que quiero hacer: tener un formulario html, con una entrada de archivo dentro. Cuando se elige un archivo, la entrada del archivo debe cargar el archivo y obtener una identificación de archivo, de modo que cuando se envía el formulario, la identificación del archivo se publica con el formulario y se escribe en la base de datos.

Versión más corta:Quiero almacenar metadatos (id, por ejemplo) con mis archivos.

Suena simple, pero me cuesta hacer eso en LoopBack.

Ha habido un par de conversaciones (1, 2 ) sobre este tema, y ninguno parecía conducir a una solución, así que pensé que este podría ser un buen lugar para encontrar uno de una vez por todas.

La solución más simple sería usar relaciones modelo, pero LoopBack no admite relaciones con el servicio de almacenamiento de archivos. Bache. Entonces tenemos que ir con un modelo persistente llamadoFile por ejemplo, y anular la creación predeterminada, eliminar para que guarde y elimine del modelo de almacén de archivos que he llamadoStorage.

Mi configuración hasta ahora:

Tengo un modelo / api / Storage que está conectado a unservicio de almacenamiento de bucle invertido y está guardando el archivo con éxito en el sistema de archivos local.Tengo un PersistedModel conectado a Mongo con metadatos de archivo:name,size, url yobjectIdTengo un gancho remoto configurado antescreate entonces el archivo se puede guardar primero y luego esurl se puede inyectar enFile.create()

Estoy ahí y de acuerdoesta página de LoopBack, Tengo el ctx que debería tener el archivo adentro:

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

Que esctx?

ctx.req: Objeto de solicitud expresa.
ctx.result: Objeto de respuesta expresa.

Ok, ahora estoy en la página Express, bastante perdido, y dice algo sobre un 'middleware de análisis del cuerpo' que no tengo idea de lo que podría ser.

Siento que estoy cerca de la solución,Cualquier ayuda sería apreciada. ¿Es correcto este enfoque?

Respuestas a la pregunta(7)

Su respuesta a la pregunta