Ответы пользователя по тегу Шаблонизаторы
  • Джангоподобный шаблонизатор или как починить swig?

    Keenest
    @Keenest Автор вопроса
    Так. Источник проблем — обновлённый с 2.5.0 на 3.0.0 express.js.
    Руководство по миграции вот — github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x, однако не всё так просто: функцию register, с которой возникли проблемы, заменили на engine, которая работает несколько иначе.

    Вот что дали долгие поиски и копание в коде:
    сам автор swig'а решил перейти с express.js на consolidate.js. Однако заставить работать swig под третьим экспрессом всё же можно, дописав в swig/index.js:
    exports.__express = function (path, options, fn) {
    	options = options || {};
    	try {
    		options.filename = path;
    		var tmpl = exports.compileFile(_.last(path.split('/')));
    		fn(null, tmpl.render(options));
    	} catch (err) {
    		fn(err);
    	}
    };
    


    и в самом вашем проекте заменив первую строку на вторую:
        app.register('.html', swig);         // для express v.2
        app.engine('.html', swig.__express); // для express v.3
    


    Изменения в экспрессе затронули и другие модули, использующиеся в моём проекте, в частности socket.io, впрочем это совсем другая история.

    Надеюсь результаты моих поисков помогут другим.
    Ответ написан
    Комментировать