Маршрутизация с рулем и Vhost: по умолчанию на уровне маршрутизатора? - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь найти способ настроить Handlebars для использования различного набора значений по умолчанию для каждого отдельного маршрутизатора, который я использую, но я немного отклеился. Я нашел множество способов установить эти значения по умолчанию на уровне приложения (app.locals и app.set ('views')), но не на уровне маршрутизатора (то есть что-то, что не сохраняется между запросами).

/ app.js

var express = require('express');
var app = express();
var vhost = require('vhost');
var exphbs  = require('express-handlebars');

app.use(function(req,res,next) {
    app.engine('.hbs', exphbs({extname: '.hbs'}));
    app.set('view engine', '.hbs');
})

var websiteOne = require('./websiteOne/routes.js');
app.use(vhost('websiteone.com', websiteOne));

var websiteTwo = require('./websiteTwo/routes.js');
app.use(vhost('websitetwo.com', websiteTwo));

app.listen(8080);

/ websiteOne / routes.js

var express = require('express');
var w1router = express.Router();

w1router.get('/', function(req,res) {
    res.render('index'); // This should use ./websiteOne/views/default
})

// ... Loads more routes here

module.exports = w1router;

/ websiteTwo / routes.js

var express = require('express');
var w2router = express.Router();

w2router.get('/', function(req,res) {
    res.render('index'); // This should use ./websiteTwo/views/default
})

// ... And loads more routes here too

module.exports = w2router;

Очевидно, я мог бы использовать полный путь внутри res.render для каждого, но, учитывая, что у меня может быть много разных маршрутов, я надеялся, что найдется способ установить значения по умолчанию для просмотра один раз в верхней части каждого маршрута. Файл .js.

...