Я знаком с Angularjs (1.x) и использую шаблоны в директивах.
В настоящее время я изучаю nodejs и как часть движка шаблона курса. Каковы преимущества их использования на бэкэнде?
В настоящее время я не вижу никакого использования.
Я знаком с Angularjs (1.x) и использую шаблоны в директивах.
В настоящее время я изучаю nodejs и как часть движка шаблона курса. Каковы преимущества их использования на бэкэнде?
В настоящее время я не вижу никакого использования.
Если у вас есть данные (скажем, из базы данных), которые нужно визуализировать для HTML, вы можете использовать механизм шаблонов для переноса данных и шаблона и отображения его в HTML (который впоследствии будет передан клиенту).
Если ваше приложение frontend делает то же самое, используя XHR-вызовы или что-то похожее на получение данных с сервера, обычно не полезно отображать на стороне HTML-сервера (вместо этого данные отправляются как JSON клиенту).
Итак, это зависит от того, как ваше приложение (как frontend, так и backend) структурировано, если имеет смысл или не использовать механизм шаблонов.
Существуют также гибридные решения, в которых исходный HTML отображается на стороне сервера, а затем клиентская сторона "берет верх". Это то, что, например, поддерживает React. Большая идея заключается в том, что вы можете использовать те же компоненты как на сервере, так и на клиенте, а при открытии страницы пользователь увидит полностью подготовленную начальную страницу (вместо того, чтобы клиентская сторона должна была получить сначала данные из бэкэнд, а затем рендеринг страницы).
Вы им действительно не нужны, но у них есть много возможностей, которые делают ваши страницы более динамичными.
Например, вы можете отображать только HTML с помощью этого кода
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
//__dirname : It will resolve to your project folder.
});
Но с двигателями вы можете отправлять данные в шаблон. http://expressjs.com/en/api.html#res.render
// pass a variable to the view
res.render('somePage', {
title: 'Awesome title',
userFriends: friendsList,
name: 'loggedUserName'
});
И теперь на интерфейсных шаблонах (EJS в этом случае) будет заполняться html данными, которые вы отправляете. Таким образом, html стал динамическим, и вы можете сделать каждую страницу для каждого пользователя другой.
<ul>
<% for(var i=0; i<userFriends.length; i++) {%>
<li><%= userFriends[i] %></li>
<% } %>
</ul>
С помощью всего лишь HTML вам нужно будет сделать много ненужных вызовов AJAX, чтобы получать и добавлять данные в html, что является плохими идеями.
Надеюсь, что это поможет.
Механизм просмотра позволяет отображать HTML с параметрами. Например, используя squirrelly, я могу создать файл, который выглядит так:
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
{(userIsSignedIn){<!-- if the user is signed in, display username and description-->
<p>{{username}} is {{description}}</p>
}}
{(!userIsSignedIn){<!--if user isn't signed in, ask them to sign in-->
<p>Sign in to view this page</p>
}}
</body>
</html>
Таким образом, я мог бы прослушивать, например, URL-адрес динамического профиля пользователя с помощью Express, а затем возвращать динамический контент.
Почти 2020 год, шаблонные литералы буквально предназначены для замены шаблонных движков.https://medium.com/@PaulBrowne83/do-we-really-need-template-engines-anymore-214eb6bc112e