Маршрутизация субдоменов Hapi.js к плагинам

Я ищу способ перенаправить разные поддомены на разные плагины. Я просмотрел документацию по API и не нашел ничего полезного.


person giodamelio    schedule 13.08.2014    source источник
comment
server.route(options) принимает vhost параметр. Для каждого субдомена можно создать свой сервер с соответствующим vhost.   -  person ubaltaci    schedule 13.08.2014


Ответы (1)


В итоге я создал простой класс для создания плагинов, которые работают только с определенными поддоменами. Вот.

var Plugin = function(attributes, routes) {
    // Add our routes to the server
    this.register = function(plugin, options, next) {
        // Loop through the selected servers and add the routes
        plugin.servers.forEach(function(server) {
            // Loop through the routes and add the vhost option
            routes.map(function(route) {
                route.vhost = attributes.vhosts.map(function(vhost) {
                     return vhost + "." + server.info.host;
                });
            });

            // Add the routes
            server.route(routes);
        });
        next();
    };

    // Add our attributes
    this.register.attributes = attributes;
};

Затем вы можете создать новый плагин и легко указать субдомены. Пример:

var plugin = new Plugin([
    // Your route or routes here
], {
    vhosts: ["array", "of", "subdomains"]
});
person giodamelio    schedule 15.08.2014
comment
Я новичок в happijs и пытаюсь разрешить регистрацию поддоменов для клиентов. У каждого клиента есть свой поддомен. Проблема с этим методом заключается в том, что вам нужно загрузить все токены клиентских субдоменов и передать их в виде массива на виртуальные хосты. Как разрешить * поддомены с подстановочными знаками и проверить по запросу, находится ли субдомен в БД или Redis, например? - person Pavel Nikolov; 29.11.2014
comment
@PavelNikolov, у тебя есть что-нибудь по этому поводу?? мне нужна такая же установка - person Devinder; 19.03.2019