【发布时间】:2019-02-17 17:18:21
【问题描述】:
我的 Hapijs 项目中有以下内容:
API 插件 前端插件
然后我有一个服务器文件夹,其中包含我的主 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?他们需要是两个独立的服务器吗?
提前致谢。
【问题讨论】:
标签: javascript node.js subdomain url-routing hapijs