Как установить мопса в качестве шаблонизатора

При настройке механизма просмотра в моем проекте; Я использовал этот фрагмент кода, и приложение отлично работает.

// configurations for the view engine
app.set('views', './views');
app.set('view engine', 'pug');

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

// configurations for the view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
61
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

это 2 разные вещи вместе взятые..

  1. app.set('view engine', 'pug'); используется при настройке механизма просмотра. Это установит тип шаблона представления.
  2. app.set('views', path.join(__dirname, 'views')); используется, когда у вас есть файлы pub для рендеринга из бэкенда на основе маршрутов.

Рассмотрим случай,

У вас есть файлы pug в следующем порядке в вашем каталоге:

/views/index.pug
/views/about.pug

здесь views — имя папки, а index.pug и about.pug — файлы. вы хотите отобразить их как для маршрутов соответственно: / и /about

В то время, Вы можете использовать app.set('views', path.join(__dirname, 'views'));, чтобы все ваши представления отображались из папки views. (учитывайте: __dirname, 'views')

поэтому вы можете написать что-то вроде этого:

app.get('/', (req,res) => {
  res.render('index')
})

app.get('/about', (req,res) => {
  res.render('about')
})

поэтому теперь код автоматически ищет файл index с расширением .pug, присутствующим в этом месте: __dirname, 'views'

Надеюсь, этот ответ поможет!! Не стесняйтесь комментировать, если у вас возникнут какие-либо сомнения, а также посмотрите блоги express.js.

app.set('view engine', 'pug'); устанавливает мопса в качестве механизма просмотра. Код для его установки одинаков для обоих приведенных вами примеров.


Путь, который изменяется (app.set('views', './views');), — это код, который указывает, в каком каталоге искать файлы шаблона при отображении представления.

__dirname — это каталог, в котором находится модуль JavaScript (например, server.js). path.join используется для его объединения со строкой views, чтобы предоставить вам подкаталог с именем views в каталоге server.js.

Если у вас его нет, то у вас есть относительный путь, и он будет вычисляться из текущего рабочего каталога.

Если бы вы были в /home/users/you/project/ и набрали node server.js, то он искал бы просмотры в /home/users/you/project/views

Однако, если бы вы были в /home/users/you/ и набрали node project/server.js, то он искал бы представления в /home/users/you/views (и, вероятно, не нашел бы их, потому что вы бы поместили их в свой проект!).

Короче говоря, если вы не используете __dirname, ваш код будет ломаться в зависимости от того, из какого каталога вы его запускаете.

Используйте подход __dirname.

Другие вопросы по теме