Neu bei Hapi, meine erste App zu schreiben. Ich habe meine Routen und Controller in separaten Dateien in jedem Modul. Bisher hatte ich bisher erfordern Controller in meiner Routen-Datei wie:Problem mit dem Zugriff auf Controller in Routen in meiner Hapi App
const controller = require('./controller');
und dann schreiben Routen wie:
module.exports = [{
path: '/items/{id}',
method: 'GET',
handler: controller.getItemById
}];
So weit so gut.
Jetzt möchte ich Caching in meinen Controller-Methoden verwenden. Dies zwang mich, meinen Controller in ein Plugin zu konvertieren.
Also mein Controller sieht nun wie:
exports.register = (server, options, next) => {
const itemCache = (id, itemId) => {
// do caching stuff
}
const getItemById = (request, reply) => {
// do stuff, use itemCache
}
server.expose({
getItemById: getItemById
});
next();
};
Die Frage ist nun, wie ich Zugriff auf die Steuerung in meine Routen-Datei? server.dependency() ist für die routes-Datei nicht verfügbar.