Это не метод, это - поле. Поле называют __name__
. class.__name__
даст название класса как строка. object.__class__.__name__
даст название класса объекта.
Если вы ищете минималистский подход к шаблонам, вы можете проверить JSON Template .
Более полнофункциональный альтернативой является EJS . Это немного больше похоже на то, что вы получили бы от Django.
Ваш опыт может отличаться для каждого из них - они предназначены для среды Javascript браузера, а не для Node.js.
Постоянно появляются новые механизмы создания шаблонов.
underscore.js добавляет много поддержки функционального программирования в js и имеет шаблоны.
И только сегодня я услышал об этом: http://github.com/SamuraiJack/Shotenjin-Joosed
Вы пробовали PURE ?
Если вы попробуете, не стесняйтесь сообщать о любых проблемах, с которыми вы можете столкнуться, на форуме
Пока он был изначально разработан для браузера, он хорошо работает с Jaxer и Rhino.
Я еще не знаю node.js, но если вы можете кэшировать некоторые JS и функции в памяти, скорость должна быть еще более впечатляющей.
У вас должна быть возможность использовать mustache.js, если он не работает, пришлите мне проблемы, и я исправлю их, потому что я собираюсь использовать их в node.js в любом случае.
http://github.com/janl/mustache.js
Я знаю, что он работает без DOM, потому что множество автономных приложений CouchDB используют его на сервере просмотра Spidermonkey.
Имеется перенос механизма шаблонов Django на JavaScript. Тем не менее, он давно не обновлялся, но в нем может быть достаточно функций.
Следует обратить внимание на node-asyncEJS, который явно разработан с учетом асинхронной природы node.js. Он даже позволяет использовать блоки асинхронного кода внутри шаблона.
Вот пример из документации:
<html>
<head>
<% ctx.hello = "World"; %>
<title><%= "Hello " + ctx.hello %></title>
</head>
<body>
<h1><%? setTimeout(function () { res.print("Async Header"); res.finish(); }, 2000) %></h1>
<p><%? setTimeout(function () { res.print("Body"); res.finish(); }, 1000) %></p>
</body>
</html>
Я проделал некоторую работу над довольно полным портом языка шаблонов Django для проекта Simon Willisons djangode (служебные функции для node.js, которые заимствуют некоторые полезные концепции из Django).
См. Документацию здесь .
Попробуйте также Yajet . ;-) Это новый, который я выпустил только вчера, но я использую его уже некоторое время, и он стабильный и быстрый (шаблоны компилируются в собственную JS-функцию).
Он имеет наилучший синтаксис IMO для механизма шаблонов и богатый набор функций, несмотря на небольшой размер кода (уменьшенный до 8,5 КБ). В нем есть директивы, которые позволяют вводить условные обозначения, перебирать массивы / хэши, определять повторно используемые компоненты шаблона и т. Д.
Если вам нравится haml, но хочется чего-то еще лучше, посмотрите http://jade-lang.com для node, я также написал haml.js :)
Шаблоны закрытия Google - это система шаблонов на основе встроенного JavaScript, которая, казалось бы, естественным образом сочетается с NodeJS. Вот несколько инструкций по их интеграции.
haml - хороший выбор для node.js
http://github.com/creationix/haml-js
haml-js
!!! XML
!!! strict
%html{ xmlns: "http://www.w3.org/1999/xhtml" }
%head
%title Sample haml template
%body
.profile
.left.column
#date= print_date()
#address= current_user.address
.right.column
#email= current_user.email
#bio= current_user.bio
html
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sample haml template
</title></head><body><div class="profile"><div class="left column"><div id="date">January 1, 2009
</div><div id="address">Richardson, TX
</div></div><div class="right column"><div id="email">tim@creationix.com
</div><div id="bio">Experienced software professional...
</div></div></div></body></html>