2012-08-31 10 views
13

Se sugiere en el Mongoose docs que debería ser capaz de controlar el flujo utilizando middleware que se conecta al gancho "init".Mongoose: cómo aprovechar el middleware de esquema en el evento 'init'?

Sin embargo, hasta ahora he tenido éxito solo con "guardar" y "validar".

Cuando hago algo como esto, ninguno de estos middleware nunca ser llamado:

MySchema.post("init", function (next) { console.log("post init") }); 
MySchema.pre("init", function (next) { console.log("pre init") }); 

Me estoy perdiendo algo?

Respuesta

22

Resulta que el evento/gancho "init" no se activa al crear un nuevo modelo, solo se activa cuando se carga un modelo existente de la base de datos. Parece que debería usar el gancho pre/validate en su lugar.

+0

¿Sigue siendo así? Parece que recibiré mi post init después de la creación inicial, como era de esperar. –

2

He utilizado con éxito middleware como MySchema.post('init', function() { ... }); con Mongoose que luego se ejecuta para cada instancia de modelo cargada en una consulta find. Tenga en cuenta que no hay un parámetro next para llamar con este middleware, solo debe regresar cuando termine.

Cuestiones relacionadas