我在同一Firebase项目托管下创建了两个站点 我已经将主域连接到一个站点,将子域连接到另一个站点
我已经在firebase功能下安装了Express
我的firebase.json是:
{
"hosting": [
{
"target": "front",
"public": "front/public",
"rewrites": [
{
"source": "**",
"function": "app"
}
]
},
{
"target": "console",
"public": "console/public",
"rewrites": [
{
"source": "**",
"function": "app"
}
]
}
]
}
我的明确index.js是:
const functions = require('firebase-functions');
const express = require('express');
const engines = require('consolidate');
const app = express();
app.engine('hbs', engines.handlebars);
app.set('views', './views');
app.set('view engine', 'hbs');
var subdomain = require('express-subdomain');
var router = express.Router();
router.get('/', function(req, res) {
res.render('console');
});
app.use(subdomain('console', router));
app.get('/', (request, response) => {
response.render('front');
});
exports.app = functions.https.onRequest(app);
我的目标是使用路由器将主域和子域分开。
在这里我想使用router.get('/')显示console.example.com
和example.com使用app.get('/')
为此,我正在使用“ express-subdomain”
但是对于我两者,我都得到了app.get('/')
的输出任何人都可以帮助我实现这一目标吗?将路由器用于子域的标准方法是什么?
===编辑1 ====
我尝试了以下方式:
const functions = require('firebase-functions');
const express = require('express');
const engines = require('consolidate');
const app = express();
app.engine('hbs', engines.handlebars);
app.set('views', './views');
app.set('view engine', 'hbs');
var subdomain = require('express-subdomain');
var routerfront = express.Router();
var routerconsole = express.Router();
routerfront .get('/', (request, response) => {
response.render('front');
});
routerconsole .get('/', function(req, res) {
res.render('console');
});
app.use(subdomain('console', routerconsole));
app.use('/', routerfront);
exports.app = functions.https.onRequest(app);
但是主域和子域仍然只有routerfront输出。
===编辑2 ===
最后的工作:
firebase.json:
{
"hosting": [
{
"target": "front",
"public": "front/public",
"rewrites": [
{
"source": "**",
"function": "front"
}
]
},
{
"target": "console",
"public": "console/public",
"rewrites": [
{
"source": "**",
"function": "console"
}
]
}
]
}
index.js
const functions = require('firebase-functions');
const express = require('express');
const engines = require('consolidate');
const front = express();
front.engine('hbs', engines.handlebars);
front.set('views', './views');
front.set('view engine', 'hbs');
const console = express();
console.engine('hbs', engines.handlebars);
console.set('views', './views');
console.set('view engine', 'hbs');
front.get('/', (request, response) => {
response.render('front');
});
console.get('/', function(request, response) {
response.render('console');
});
exports.front = functions.https.onRequest(front);
exports.console = functions.https.onRequest(console);
现在我的问题是:启动多个express()实例是否有效? 就我而言: const front = express(); const console = express();
会在服务器上产生额外的负载吗?
谢谢