В моем проекте Hapijs есть следующее:
Плагин API Плагин Frontend
Затем у меня есть папка сервера, в которой находится мой основной файл index.js, где запускается сервер Hapi.Я связываю все вместе в папке моего сервера с помощью плагина Glue: https://www.npmjs.com/package/glue
Проблема, с которой я столкнулся, заключается в том, что я хочу использовать поддомен для моего API, например api.locahost: 8000 (api.domain.com).Однако, независимо от того, какой тип субдомена я ввожу, я могу получить доступ к своему сайту.
Кроме того, это похоже на random.localhost: 8000 перенаправлений на locahost: 8000, и я по-прежнему могу получить доступ ко всем страницам моего сайта.
Вот мой код:
'use strict';
const Dotenv = require('dotenv');
Dotenv.config({ path: `${__dirname}/.env` });
const Glue = require('glue');
const manifest = {
server: {
port: process.env.PORT,
host: process.env.HOST
},
register: {
plugins: [
{
plugin: '~/api',
options: {
routes: {
vhost: process.env.SUBDOMAIN //api.localhost
}
}
},
{
plugin: '~/lib'
}
],
options: {
}
}
};
const options = {
relativeTo: __dirname
};
const startServer = async function () {
try {
const server = await Glue.compose(manifest, options);
await server.start();
await console.log(`Server running at: ${server.info.uri}`);
}
catch (err) {
console.error(err);
process.exit(1);
}
};
startServer();
Если вам интересно, что такое "lib", это имя моего внешнего каталога.Если вы посмотрите в настройках плагина API, вы увидите, где я добавил свой поддомен.
Как я могу сделать так, чтобы мой плагин внешнего интерфейса использовал только localhost: 8000, а мой плагин API использовал только api.localhost: 8000?Должны ли они быть двумя отдельными серверами?
Заранее спасибо.