Eine gute Möglichkeit, zu erreichen, dass mit hapi, indem Sie Ihre verschiedenen Standorte in getrennten plugins und mit dem vhost
Modifikator ist, wenn das Plugin geladen, idealerweise Glue verwenden.
Hier ein Beispiel:
sites/dogs.js
exports.register = function (server, options, next) {
// Put all your routes for the site in here
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
reply('Dogs homepage');
}
});
next();
};
exports.register.attributes = { name: 'dogs' };
sites/cats.js
exports.register = function (server, options, next) {
// Put all your routes for the site in here
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
reply('Cats homepage');
}
});
next();
};
exports.register.attributes = { name: 'cats' };
index.js
const Glue = require('glue');
const Hoek = require('hoek');
const manifest = {
connections: [{
port: 4000,
}],
registrations: [
{
plugin: {
register: './sites/cats'
},
options: {
routes: {
vhost: 'cats.com'
}
}
},
{
plugin: {
register: './sites/dogs'
},
options: {
routes: {
vhost: 'dogs.com'
}
}
}
]
};
const options = {
relativeTo: __dirname
};
Glue.compose(manifest, options, (err, server) => {
Hoek.assert(!err, err);
server.start((err) => {
Hoek.assert(!err, err);
console.log('server started');
});
});
Anschließend können Sie bestätigen, dass das Routing korrekt mit ein paar cURL arbeitet Befehle:
$ curl -H "Host: cats.com" localhost:4000/
Cats homepage
$ curl -H "Host: dogs.com" localhost:4000/
Dogs homepage
Ein Browser für Sie, dass Host-Header gesetzt wird aber so, wenn Sie wechseln Sie zu http://cats.com oder http://dogs.com hapi werden Sie dienen der richtige Inhalt (sofern Ihr DNS korrekt konfiguriert ist).
Wie kann ich Vorlagen bereitstellen? – eosimosu