以下是我用来启动服务器的胶水清单:
var Config = require('../config.json');
var internals = {
manifest: {
connections: [
{
host : Config.host || process.env.IP,
port : Config.apiPort || process.env.PORT,
labels : ['api']
}],
plugins: {
'./decorate': [{ 'select': ['api']}],
'hapi-auth-jwt': [{ 'select': ['api']}],
'./authentication': [{ 'select': ['api']}],
'./controllers': [{ 'select': ['api']}],
'./models': [{ 'select': ['api']}],
'./api': [{ 'select': ['api']}],
good: {
opsInterval: 5000,
reporters: [
{ 'reporter': 'good-console', 'events': { 'log': '*' } }
]
}
}
}
};
if (!process.env.PRODUCTION) {
internals.manifest.plugins['blipp'] = [{}];
internals.manifest.plugins['good'].reporters[0].events['ops'] = '*';
}
module.exports = internals.manifest;
一旦我添加了hapi-swagger'在插件列表中,服务器停止响应./api文件中定义的路由。没有一条路线有效。是在胶水清单上添加hapi-swagger的正确方法还是我做了一些荒谬的事情?
编辑:下面是api.js
exports.register = function (plugin, options, next) {
plugin.dependency('controllers');
plugin.dependency('models');
var Controllers = plugin.plugins.controllers.handlers;
var Models = plugin.plugins.models.models;
plugin.bind({
models: Models
});
plugin.route([
{ method: 'GET', path: '/token', config: Controllers.Membership.token },
{ method: 'GET', path: '/', config: Controllers.Home.status },
{ method: 'GET', path: '/nodes', config: Controllers.Node.search },
{ method: 'GET', path: '/services', config: Controllers.Node.services },
{ method: 'GET', path: '/createnodetree', config: Controllers.Loader.createNodeTree }
]);
next();
};
exports.register.attributes = {
name: 'api',
version: require('../package.json').version
};
答案 0 :(得分:0)
如果您尝试使用hapi-swagger而不包括文档视图依赖项或正确禁用文档支持,则会发生这种情况。来自docs:
如果您想从API查看文档,您还需要安装支持模板和静态内容服务的惰性插件和视觉插件。如果你只想使用swagger.json而不使用swagger-codegen的文档,只需将options.enableDocumentation设置为false。
您没有展示如何添加hapi-swagger插件,但只需在任何位置添加'enableDocumentation': false
即可。您可以在上面的链接中找到示例。