Я пытаюсь найти способ настроить 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.