hapi-swagger禁用我的路线

时间:2015-12-21 11:04:44

标签: javascript node.js hapijs

以下是我用来启动服务器的胶水清单:

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
};

1 个答案:

答案 0 :(得分:0)

如果您尝试使用hapi-swagger而不包括文档视图依赖项或正确禁用文档支持,则会发生这种情况。来自docs

  

如果您想从API查看文档,您还需要安装支持模板和静态内容服务的惰性插件和视觉插件。如果你只想使用swagger.json而不使用swagger-codegen的文档,只需将options.enableDocumentation设置为false。

您没有展示如何添加hapi-swagger插件,但只需在任何位置添加'enableDocumentation': false即可。您可以在上面的链接中找到示例。