在node.js中注册hapi-swagger插件时出错

时间:2016-06-07 07:09:33

标签: hapijs

我是node.js开发的新手。我只是使用Hapi.js和Swagger插件构建REST API用于学习目的。

但是在node.js中注册hapi-swagger插件时,它会给出一些依赖错误。

以下是我的代码:

'use strict';

 const Hapi = require('hapi');
 const inert = require('inert');


  //creating server
  const server = new Hapi.Server();

  //connecting 
  server.connection({
     port:3000,
     host:'localhost'
   }
);


 //registering the swagger plugin (use for documentation and testing       purpose
server.register({
   register:require('hapi-swagger'),
   },
   function(err)
   {
    if(err)
        server.log(['error'],'hapi-swagger load error:'+err)
    else
        server.log(['start'],'hapi-swagger interface loaded');
}
);

错误显示是:

  

/media/Tech/swagger_api/app.js:69           扔错了;           ^

错误:插件hapi-swagger在连接中缺少依赖性惰性:http://localhost:3000     at internals.Server._createCache.internals.Server.start.internals.Server.initialize.Items.parallel [as initialize](/media/Tech/swagger_api/node_modules/hapi/lib/server.js:226:49)     at internals.Server._createCache.internals.Server.start.Items.serial [as start](/media/Tech/swagger_api/node_modules/hapi/lib/server.js:182:10)     在对象。 (/media/Tech/swagger_api/app.js:67:8)     在Module._compile(module.js:409:26)     at Object.Module._extensions..js(module.js:416:10)     在Module.load(module.js:343:32)     在Function.Module._load(module.js:300:12)     在Function.Module.runMain(module.js:441:10)     在启动时(node.js:139:18)     在node.js:968:3

1 个答案:

答案 0 :(得分:3)

你需要注册hapi-swagger插件的惰性和视觉才能工作,请参阅此line,表明它是一个依赖项。这是一个注册插件的片段,这些插件取自项目自述文件。

const Hapi = require('hapi');
const Inert = require('inert');
const Vision = require('vision');
const HapiSwagger = require('hapi-swagger');
const Pack = require('./package');

const server = new Hapi.Server();
server.connection({
    host: 'localhost',
    port: 3000
});

const options = {
    info: {
        'title': 'Test API Documentation',
        'version': Pack.version,
    }
};

server.register([
    Inert,
    Vision,
   {
        'register': HapiSwagger,
        'options': options
}], (err) => {
    server.start( (err) => {
       if (err) {
            console.log(err);
        } else {
            console.log('Server running at:', server.info.uri);
        }
    });
});

server.route(Routes);