Специальный шаблонный движок Express.js (планшет)

Я пытаюсь заставить движок шаблонов плит работать с express.js. Моя первая попытка была такая:

app.register('.html', {
    compile: function (str, options) {
        var template = new plate.Template(str);
        return function(locals) {
            return template.render(locals, function(err, data) {
                return data;
            });
        }
    }
});

Я вижу, что проблема в том, что template.render ничего не возвращает (не определено), а передает данные в обратный вызов. Я не уверен, как заставить это работать в этом случае, поскольку Express ожидает, что функция компиляции возвратит функцию, которая непосредственно возвращает визуализированный шаблон при вызове.

Я подумал, что, возможно, я смогу использовать обещания для решения этой проблемы, но там тоже не удалось, поскольку экспресс-код не ожидает возврата обещания. Я не слишком разбираюсь в обещаниях, так что, возможно, я делаю это неправильно:

app.register('.html', {
    compile: function (str, options) {
        var promise = new Promise();
        var template = new plate.Template(str);
        return function(locals) {
            template.render(locals, function(err, data) {
                promise.resolve(data);
            });
            return promise;
        }
    }
});

Вот пример пользовательской реализации, которая работает. Разница в том, что функция template () подчеркивания напрямую возвращает визуализированную строку следующим образом:

app.register('.html', {
    compile: function (str, options) {
        var template = _.template(str);
        return function (locals) {
            return template(locals);
        };
    }
});

Я бы очень хотел использовать шаблоны Plate, так как тег {% block%} очень хорош. Любая помощь приветствуется.

соответствующая документация:

документы на github

express.js app.register документы

Ответы на вопрос(1)

Ваш ответ на вопрос