hapi 服务器上的多个连接
Multiple connections on a hapi server
我想将插件添加到具有多个连接的 hapi 服务器,例如监听不同的 ips。
是否可以将插件添加到配置的所有服务器?
或者如何遍历所有服务器以将插件添加到所有服务器?
默认情况下,插件会在调用 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
其中来自 plugin2
的 GET /plugin2 路由仅响应于:
http://localhost:8080/plugin2
您可以在 hapi 中创建多个 connections
以拥有多个可用的内部服务器。这些独立服务器的好处在于:您可以仅为需要该功能的服务器单独注册插件和路由。
在 how to separate frontend and backend within a single hapi project 上的本教程中查找更多详细信息。
希望对您有所帮助!
我想将插件添加到具有多个连接的 hapi 服务器,例如监听不同的 ips。
是否可以将插件添加到配置的所有服务器?
或者如何遍历所有服务器以将插件添加到所有服务器?
默认情况下,插件会在调用 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
其中来自 plugin2
的 GET /plugin2 路由仅响应于:
http://localhost:8080/plugin2
您可以在 hapi 中创建多个 connections
以拥有多个可用的内部服务器。这些独立服务器的好处在于:您可以仅为需要该功能的服务器单独注册插件和路由。
在 how to separate frontend and backend within a single hapi project 上的本教程中查找更多详细信息。
希望对您有所帮助!