Усы (-подобный) шаблонизатор для Express? - PullRequest
4 голосов
/ 16 января 2012

Есть ли шаблонный движок для Express (node.js), основанный на Mustache или использующий аналогичный синтаксис?

Все, что я мог найти, это haml, jade, ejs, jquery templates и один на основе CoffeeScript (я пишу на простом JS).

Я хочу написать «обычный» html, поэтому подойдут только ejs и jqtpl.Я уже использую mustache с backbone, поэтому было бы лучше использовать его на стороне сервера с Node.js

Ответы [ 8 ]

5 голосов
/ 16 января 2012

Вероятно, вы можете добавить Усы в качестве движка рендеринга, следуя Руководству по Express :

Просмотр имен файлов принимает форму «.», Где находится имя модуля>это будет необходимо.Например, view layout.ejs сообщит системе представления> require ('ejs'), загружаемый модуль должен экспортировать метод exports.compile (str,> options) и вернуть функцию для соответствия Express.

Редактировать: С Руководство по усам в разделе Использование:

Ниже приведен краткий пример использования mustache.js:

var view = {
  title: "Joe",
  calc: function () {
    return 2 + 4;
  }
};

var output = Mustache.render("{{title}} spends {{calc}}", view);

В этом примере функция Mustache.render принимает два параметра: 1) усы> шаблон и 2) объект представления, содержащий данные и код, необходимые для визуализации> шаблона.

Исходя из вышесказанного, я подозреваю, что вы могли бы просто экспортировать Mustache.render, но я не проверял его.Объектные литералы, используемые в качестве данных, выглядят одинаково, но если они действительно отличаются, вы, возможно, можете просто обернуть Mustache.render в функцию, которая правильно его форматирует.

Редактировать: ссылка-обертка Xomby содержит примеркак обернуть руль для экспресса, усы должны быть похожими.

5 голосов
/ 27 июля 2013

Только что наткнулся на этот древний поток, но никто не упомянул консолидировать.js, который кажется "правильным" способом в Express 3 (см. http://expressjs.com/faq.html).. Он также предоставляет простой способ переключаться / экспериментировать с шаблонные системы.

Вот простой пример - http://invitingthebell.com/2012/12/24/mustache-templates-in-express-3-0/.

Код, в случае его исчезновения:

var express = require('express')
 , cons = require('consolidate')
 , app = express();

// assign the mustache engine to .html files
app.engine('html', cons.mustache);

// set .html as the default extension 
app.set('view engine', 'html');

app.set('views', __dirname + '/views');

// test mustache
app.get('/', function(req, res){ 
  var viewdata = { 'test' : 'Hey now.'};
  res.render('index', viewdata);
});

app.listen(3000);

Файл index.html в каталоге представлений:

<html>
  <head><title>Some CMS</title></head>
  <body>
    <h1>Mustache</h1>
    <p>What do you say?</p>
    <p>{{test}}</p>
  </body>
</html>
4 голосов
/ 26 января 2012

Попробуйте Hogan.js http://twitter.github.com/hogan.js/

Я думаю, это то, что Twitter и LinkedIn используют в производстве.

2 голосов
/ 22 июня 2012

Вот рабочий пример / руководство по использованию NodeJS, ExpressJS и MustacheJS Template Engine:

http://devcrapshoot.com/javascript/nodejs-expressjs-and-mustachejs-template-engine

Вы можете создать полноценную веб-страницу, как обычно, размещая поля mustacheJS там, где вам нравится. Используйте экспресс для маршрутизации на страницу, используйте узел fs.readFileSync (); чтобы получить html-файл, используйте усы, чтобы обновить данные на странице, а затем выплюнуть их клиенту.

Это довольно аккуратно. Надеюсь, это поможет!

-А-

1 голос
/ 17 января 2012

Конечно, лучший способ сделать это - пост здесь:

http://iamtherockstar.com/blog/2011/11/21/using-mustache-templates-express-apps/

Пока это отлично работает для меня.Единственная проблема, которую я обнаружил, - это не использовать партиалы в корневом пути для представлений.Например, партиалы в view / partials - движок по умолчанию находит только партиалы как view.Дайте мне знать, если вы поймете это!

1 голос
/ 17 января 2012

Я нашел Handlebars.js , который является расширением системы / языка шаблонов Усов.

И есть действительно простая оболочка для использования с Express.

1 голос
/ 16 января 2012

Вы уже пробовали Стаче ?Он больше не поддерживается, но вы можете перейти по некоторым ссылкам и получить более свежие материалы ..

0 голосов
/ 03 марта 2015

Проверьте панели управления. «Руль обеспечивает необходимую мощность, позволяющую эффективно создавать семантические шаблоны без каких-либо разочарований. Рули в значительной степени совместимы с шаблонами усов. В большинстве случаев можно поменять усы с помощью руля и продолжить использовать текущие шаблоны. Полную информацию можно найти здесь"- Руль

...