Cache templates
This commit is contained in:
@@ -1,10 +1,18 @@
|
||||
const express = require('express');
|
||||
const fs = require('fs');
|
||||
const log = require('log');
|
||||
const pug = require('pug');
|
||||
const config = require('settings/config');
|
||||
|
||||
module.exports = function(app, controllersDir = __dirname + '/../controllers') {
|
||||
|
||||
log.debug("Loading controllers :");
|
||||
let templatesToCompile = [];
|
||||
|
||||
let templatesDir = controllersDir + '/../templates';
|
||||
fs.readdirSync(templatesDir).forEach((templ) => {
|
||||
templatesToCompile.push(templatesDir + '/' + templ);
|
||||
});
|
||||
|
||||
fs.readdirSync(controllersDir).forEach(function(name) {
|
||||
|
||||
@@ -15,6 +23,11 @@ module.exports = function(app, controllersDir = __dirname + '/../controllers') {
|
||||
let urls = require(controllersDir + '/' + name + '/urls');
|
||||
name = obj.name || name;
|
||||
|
||||
let templatesDir = controllersDir + '/' + name + '/templates';
|
||||
fs.readdirSync(templatesDir).forEach((templ) => {
|
||||
templatesToCompile.push(templatesDir + '/' + templ);
|
||||
});
|
||||
|
||||
// allow specifying the view engine
|
||||
if (obj.engine) app.set('view engine', obj.engine);
|
||||
|
||||
@@ -43,9 +56,21 @@ module.exports = function(app, controllersDir = __dirname + '/../controllers') {
|
||||
|
||||
log.debug();
|
||||
|
||||
|
||||
// mount the app
|
||||
// parent.use(app);
|
||||
|
||||
});
|
||||
|
||||
if (config.DEBUG === false) {
|
||||
let time = Date.now();
|
||||
log.debug('Compiling templates...');
|
||||
for (let template of templatesToCompile) {
|
||||
if (template.substr(-4) !== '.txt') {
|
||||
pug.compileFile(template, {cache: true});
|
||||
}
|
||||
}
|
||||
log.debug("Templates compiled in " + (Date.now() - time) + 'ms');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user