hapi.js - hapi 服务器上的多个连接

标签 hapi.js

我想向 hapi 服务器添加插件,该服务器具有多个连接,例如监听不同的 ip。

是否可以向所有配置的服务器添加插件?

或者如何循环所有服务器以将插件添加到所有服务器?

最佳答案

默认情况下,插件会在调用server.route()时为所有连接添加路由。

要限制插件添加路由的连接,您可以在创建连接时使用标签,然后在注册插件时指定这些标签。这是一个例子:

var Hapi = require('hapi');

var server = new Hapi.Server();

server.connection({ port: 8080, labels: 'a' });
server.connection({ port: 8081, labels: 'b' });
server.connection({ port: 8082, labels: 'c' });

var plugin1 = function (server, options, next) {

    server.route({
        method: 'GET',
        path: '/plugin1',
        handler: function (request, reply) {

            reply('Hi from plugin 1');
        }
    });

    next();
};
plugin1.attributes = { name: 'plugin1' };

var plugin2 = function (server, options, next) {

    server.route({
        method: 'GET',
        path: '/plugin2',
        handler: function (request, reply) {

            reply('Hi from plugin 2');
        }
    });

    next();
};
plugin2.attributes = { name: 'plugin2' };

server.register(plugin1, function (err) {

    if (err) {
        throw err;
    }

    server.register(plugin2, { select : ['a'] }, function (err) {

        if (err) {
            throw err;
        }

        server.start(function () {

            console.log('Server started');
        })
    });
});

GET/plugin1 来自 plugin1 的路由响应于:

http://localhost:8080/plugin1
http://localhost:8081/plugin1
http://localhost:8081/plugin2

其中来自 plugin2GET/plugin2 路由仅响应:

http://localhost:8080/plugin2

关于hapi.js - hapi 服务器上的多个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886099/

相关文章:

javascript - Node js - 使用 Bell 进行 Hapi JS 身份验证

mongodb - 用 hapijs stub mongoDB

javascript - Socket.io 不断尝试建立连接

javascript - Hapi 嵌套路由

javascript - hapi.js 处理错误的最佳方式

javascript - 无效的 JWT token 导致 500 内部服务器错误

json - Hapijs header 无效 json

node.js - 如何在 hapi.js 服务器中编写类似 Apache 的访问日志

javascript - 如何直接访问 Hapi (Node.js) 服务器上的文件?

javascript - 如何在特定时间跨度内进行具有速率限制的异步 API 调用?