我是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
答案 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);