Почему тег li не получает значение переменной цикла?

Я пытаюсь перебрать объект, исходящий из app.js. Я использую каждый цикл в PUG/JADE, чтобы использовать его значение для печати некоторых значений. Но li не получает значение переменной цикла

Примечание : Я получаю «post.title» и «post.body» ниже 4 раз, потому что они исходят из базы данных mongo, а я сделал ровно 4 записи в базе данных. Кроме того, это также означает, что объект правильно переходит на страницу индекса, но li не получает значение переменной цикла.

Вывод, который я получаю

 . = post.title
 . = post.body
 . = post.title
 . = post.body
 . = post.title
 . = post.body
 . = post.title
 . = post.body

Что я хочу

 Title of the post
 body of the post

 Title of another post
 Body of another post

 and so on....

Мой код

---- index.pug ----

block content
    ul
    each post in posts
        li = post.title
        li = post.body

---- app.js ----

let Post = require('./models/post');

app.get('/', function(req, res){
   Post.find({}, function(err, posts){

   if (err){
       console.info(err);
   } else {
      res.render('index', {   
        title:'Posts',
        posts: posts
     });
   }
 });
});

Что еще я пробовал

Я создал постоянный массив прямо над циклом для проверки и повторил этот массив. Но это дало мне тот же результат, что и

. = name
. = name
. = name

не знаю почему. Код для этого ниже.

block content
     - const names = ["Sami", "Abeer", "Hassaan"];
     ul.list-group
         each name in names
            li = name
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
193
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Уберите пробел между li =, чтобы получилось li= name. Пробел указывает, что знак равенства должен быть содержимым тега.

Полный пример вашего index.pug:

block content
    ul
    each post in posts
        li= post.title
        li= post.body

Спасибо, это сработало отлично. Не знаю, почему они не оставляют пробел перед знаком =. мой стиль программирования - ставить пробел перед знаком =.

Sami 28.05.2019 21:03

Понятный. Это просто мопс. Итак, вы можете сделать: h1 Мой супер классный заголовок Вот почему h1 = <- Это знак равенства, который будет строкой. В то время как: h1= <- это приведет к сбою, потому что теперь он ожидает javascript

Torbjørn Angeltveit 28.05.2019 22:12

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