IT_Highlander
@IT_Highlander

Как вывести блок в шаблоне express.js в зависимости от наличия свойства locals?

Доброго дня всем. Есть сайт на ноде + express js. По стандарту есть index.js в routes, и есть шаблон для вывода страниц типовых.
В шаблоне в head следующая конструкция:
<!DOCTYPE html>
<html class="no-js" lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="<%= locals.meta_description %>">
        <title><%= locals.title %></title>
        <link rel="canonical" href="https://www.site<%= locals.canonical_link %>">


В индексе для каждой страницы прописываются свойства:
router.get('/page-1', function (req, res) {
    res.render('page-template', {
        layout: 'layout',
        title: 'Title1',
        template: 'page',
        canonical_link: '/page-1',
        meta_description: 'Descr-1'
    });
});


Если не указать в роуте canonical_link: '/page-1', то вылезает ошибка. Собственно вопрос - как правильно сделать проверку на наличие свойства canonical_link в роуте для конкретной страницы, и если свойство есть, то выводить строку при рендере нормально, а если такого свойства нет, то вообще не выводить в head строку
<link rel="canonical" href="https.....>.

Пробовал проверки на udefined и obj?.prop, но что-то не выходит вообще, видимо проблемы с пониманием работы этих методов.

За кусок кода вообще благодарен буду, тысяча лайков, отметки о решении и прочие возможные плюшки)

Актуально
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы