Je voudrais ajouter une méthode telle que view
et json
à l'objet de contexte transmis à mes contrôleurs. Je le fais dans un middleware qui fonctionne avant tout le reste:Meilleure façon d'ajouter des méthodes d'assistance à l'objet de contexte dans Koa2
async function(ctx, next){
ctx.view = view.bind(ctx);
ctx.json = json.bind(ctx);
await next()
ctx.renderer.render();
}
ces méthodes définies un objet de configuration classique (Renderer) que les middleware et interprète rend ensuite la réponse réelle en définissant la ctx.body
correcte. Cela me permet de changer facilement le langage des modèles et de combiner plus facilement les requêtes API et Template.
Sauf que cela ne fonctionne pas car après await next()
le ctx.renderer
est celui par défaut, pas celui défini par les contrôleurs. Je pense que c'est un problème de nom, mais je ne suis pas sûr d'où ça vient.
Quelle est la meilleure pratique pour attacher des fonctions au contexte qui peut référencer le contexte sans qu'il leur soit transmis?