Я пытался реализовать плагины на моем сервере hapi, хотя то, что я пытался, не работает. Я использую функцию server.pack.register()
хотя это, кажется, дает мне ошибку:hapi - server.pack.register function not working
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
Вот мой полный код:
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();
}
});
Я попытался с помощью server.register()
, но это, кажется, не работает. Кто-нибудь есть решение того, что я делаю? Спасибо за помощь, очень ценим!
Серверный пакет использовался в очень старых версиях hapi, вам нужно выполнить ответ @Ankh, но поместить вызов server.start внутри server.register callback и проверить наличие ошибок в обоих вызовах функций. –
'server.pack.register ({plugin: plug}, (err) => { if (err) { console.error ('Не удалось загрузить плагин:', err); } else { server.start(); } }); ' –