Мопс небуферизованный код Переменная интерполяция не работает, но буферизованный код делает - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь создать экспресс-приложение, используя Pug для шаблонов.Я не могу понять, почему, когда я использую небуферизованную переменную интерполяцию, объект не определен, но когда я удаляю черту, он, кажется, работает просто отлично (минус, что он буквально отображает объект)

//index.pug

extends layout

block campground 
  - var campgrounds = '#{camps}'
    .row
      each campground in campgrounds
        div.col-md-3.col-sm-6
          div
            img(src=`${campground.image}` class='img-thumbnail')
            a(href=`/campgrounds/${campground._id}`)
              h4.caption.text-center #{campground.name}





//app.js

app.get('/campgrounds', async (req, res) => {
    try {
        const camps = await Camp.find();
        res.render('index', { camps: camps });
    } catch (ex) {
        res.status(500).send('internal error');
    }
});

Синтаксис 1:

- var campgrounds = '#{camps}'

Производит:

Синтаксис 2:

var campgrounds = '#{camps}'

Производит:

1 Ответ

0 голосов
/ 04 февраля 2019

Я считаю, что вы можете:

  1. Удалить строку - var campgrounds = '#{camps}' и заменить строку each campground in campgrounds на each campground in camps (см. Фрагмент кода ниже).
  2. ИлиВы также можете заменить - var campgrounds = '#{camps}' на - var campgrounds = camps (интерполяция в строках кода не требуется).

$(function() {

    // in your code you get `camps` from DB
    // const camps = await Camp.find();
    const camps = [{name: 'Camp1'}, {name: 'Camp2'}, {name: 'Camp3'}];

    var json = {
        camps: camps
    };

    // jade compile
    // instead of your function res.render(...);
    $("#so").html(jade.compile($("#jadehi").html())(json));
});



SEO(please enable javascript~)

.content
  .row
    each campground in camps
      div.col-md-3.col-sm-6
        div.
          Campground: #{campground.name}
          <!-- img(src=`${campground.image}` class='img-thumbnail') -->
          <!-- a(href=`/campgrounds/${campground._id}`) -->
            <!-- h4.caption.text-center #{campground.name} -->

...