-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathplugins.txt
53 lines (29 loc) · 1.55 KB
/
plugins.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
RouteInjector:
--------------
injector.models -> un mapa de objetos con key con el model de mongoose.
injector.models[model].schema -> aqui viene el schema (si modificamos, no se ven los cambios pq el objeto mongoose ya esta compilado)
Lista de rutas ?
Autenticacion?
Plugines
--------
Tienen 4 fases
1. Inicializacion
routerInjector.loadPlugin(<aqui va lo del require>, <objecto-json-config>) <- esto se pone en el bin/www en vez del require
El injector le pasa al plugin el propio injector y la configuracion del plugin. Es un json.
module.exports.init = function(injector, pluginConfig) <-- esto es lo que va en el plugin propiamente dicho
2. Carga de modelos
Lo hace el routeInjector. Esto llama a la funcion para cada modelo del sistema:
module.exports.newModel(modelName, schema, cb) <-- aqui podemos modificar el schema y cuando acabamos (importante) llamamos al cb vacio.
3. PREINJECT
Aqui es para poner rutas custom: (functions custom, overrides o directamente cambiar la funcionalidad de una ruta). Esto se llama antes de que el route injector inyecte
sus cositas.
module.exports.preInject(cb) -> del injector pillo las cosas
Si la funcion no esta en el plugin no pasa nada.
4. POSTINJECT
Es igual que el de antes, pero no puedes modificar las rutas del RI porque las suyas ya estan puestas.
module.exports.postInject(cb)
Ejemplos:
1. Un plugin que añade una ruta a su rollo
2. Un plugin que añade una ruta a todos los modelos
3. Un plugin que añade una ruta a algun modelo concreto
4. Un plugin que añade un campo a todos los modelos.