J'ai essayé d'implémenter des plugins dans mon serveur hapi bien que ce que j'ai essayé ne fonctionne pas. J'utilise la fonction server.pack.register()
bien que cela semble me donner une erreur:hapi - la fonction server.pack.register ne fonctionne pas
server.pack.register(plugin: plug, (err) => {
^^^^^^
SyntaxError: missing) after argument list
at Object.exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:513:28)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Function.Module.runMain (module.js:575:10)
at startup (node.js:160:18)
at node.js:449:3
Voici mon code complet:
var Hapi = require('hapi');
var server = new Hapi.Server();
server.connection({
host: 'localhost',
port: 3000
});
server.route({
method: 'GET',
path: '/users',
config: {
handler: function (request, reply) {
var result = {};
setTimeout(function() {
result.users = [{
first: 'Abraham Lincoln',
last: 'Lincoln'
}, {
first: 'Andrew',
last: 'Johnson'
}, {
first: 'Ulysses',
last: 'Grant'
}];
result.time = Date.now()
return reply(result).header('X-Special-Header', 'MEAN Stack');
}, 1);
}
}
})
server.start((err) => {
if (err) {
throw err;
}
console.log('Server running at:', server.info.uri);
});
var plug = {
register: function (plugin, options, next) {
plugin.route({
method: 'GET',
path: options.prefix + '/view',
config: {
handler: function (request, reply) {
request.server.inject({
url: '/users'
}, function (res) {
var users = res.result.users;
var view = '<!DOCTYPE html><html lang="en"><body><h1>User Output</h1><table>';
for (var i = 0; i < users.length; i++) {
var user = users[i];
view += '<tr><td>' + user.first + '</td><td>' + user.last + '</td></tr>';
}
view += '</table></body></html>';
reply(view);
});
}
}
});
next();
}
};
plug.register.attributes = {
name: 'viewer',
version: '1.0.0'
};
// Doesn't work
server.pack.register(plugin: plug, (err) => {
if (err) {
console.error('Failed to load plugin:', err);
} else {
server.start();
}
});
J'ai essayé d'utiliser server.register()
mais cela ne semble pas fonctionner non plus. Est-ce que quelqu'un a une solution à ce que je fais? Merci pour l'aide, très appréciée!
Le pack de serveur a été utilisé dans de très anciennes versions de hapi, vous devez suivre @Ankh answer mais placer l'appel server.start dans le rappel server.register et vérifier les erreurs des deux appels de fonction. –
'server.pack.register ({plugin: enfichable}, (err) => { if (err) { console.error ('Impossible de charger le plugin:', err); } else { server.start() } }); –