Javascript hapi-server.pack.register功能不工作

Javascript hapi-server.pack.register功能不工作,javascript,server,hapijs,Javascript,Server,Hapijs,我一直在尝试在我的hapi服务器中实现插件,尽管我一直在尝试的是不起作用的。我使用函数server.pack.register,但这似乎给了我一个错误: server.pack.register(plugin: plug, (err) => { ^^^^^^ SyntaxError: missing ) after argument list at Object.exports.runInThisContext (vm.js:53:16)

我一直在尝试在我的hapi服务器中实现插件,尽管我一直在尝试的是不起作用的。我使用函数server.pack.register,但这似乎给了我一个错误:

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中的server.pack是什么,但我认为问题主要是语法错误

尝试使用server.register并删除插件:,因此


有关加载自定义插件的更多信息,请访问。

服务器包在非常旧的hapi版本中使用,您需要遵循@Ankh answer,但将Server.start调用放在Server.register回调中,并检查两个函数调用的错误。Server.pack.register{plugin:plug},err=>{if err{console.error'加载插件失败:',err;}否则{server.start;};
server.register(plug, (err) => {
    if (err) {
        console.error('Failed to load plugin:', err);
    } else {
      server.start(err => {
          if (err)
              console.error('Failed to start server:', err);
      });
    }
});