E JS не шаблонизирует все свойства данного объекта - PullRequest
0 голосов
/ 09 апреля 2020

Итак, я пытаюсь шаблонизировать объект JSON для представления e js. Тем не менее, только некоторые из свойств данного объекта являются шаблонными для представления. Когда я запускаю свой сайт на localhost, он работает нормально, но когда я запускаю его на моем VPS, где развернут тот же код, он не работает.

Вот как выглядит объект:

{
    "_id" : ObjectId("5e5d9492bbb5f314b03a07b5"),
    "date" : "Mon Mar 02 2020",
    "author" : "hello",
    "title" : "Fake Blog Post on How to Rig a Rod",
    "content" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque lacinia viverra ultricies. Duis vel dui ante. Nulla venenatis ornare lorem et ornare. Phasellus vestibulum viverra diam quis pulvinar. Curabitur sit amet ultricies purus. Donec a pretium justo. Mauris pharetra, nisl ac vehicula pulvinar, diam sapien fringilla enim, auctor eleifend lorem justo et turpis. Nam eget tristique velit. Sed gravida sapien sed nisl sodales, eget scelerisque arcu tristique. Phasellus molestie neque in suscipit pulvinar. Nunc nec lectus quis lorem consequat accumsan. Praesent nec odio placerat, bibendum dolor sit amet, rhoncus quam. Donec et lacus eu felis sollicitudin porttitor. Cras nec aliquet neque. Donec erat risus, porttitor ac pharetra sit amet, mattis vel est. Morbi vel malesuada tellus. Proin non congue purus, vitae dapibus lacus. Curabitur lacinia urna vel sapien euismod rutrum. Pellentesque feugiat orci a mi consectetur suscipit. Duis sed eros at dui facilisis dictum. Cras enim turpis, imperdiet vel lacus id, pulvinar rhoncus risus. Donec molestie turpis ipsum, ac ullamcorper orci pharetra non. Pellentesque ut quam congue, feugiat nisl vel, sagittis ipsum. Pellentesque facilisis tempor tristique. Mauris condimentum egestas lectus a luctus. Proin eget ullamcorper ligula. Sed semper quis est ac condimentum. Vivamus sed velit dolor. Sed aliquam sollicitudin orci a pretium. Nulla quis sem vel turpis facilisis bibendum quis vel tellus. In hac habitasse platea dictumst. Sed feugiat vestibulum condimentum. Morbi sit amet pharetra orci. Etiam accumsan elit eu erat eleifend pulvinar. Vestibulum blandit gravida scelerisque.Proin non ex lobortis, suscipit purus tristique, blandit metus. Vivamus sit amet mi at lectus gravida luctus sed eget purus. Donec laoreet nec nulla quis sagittis. Cras ut eros efficitur, dictum felis vitae, cursus tortor. Sed varius ante non sapien malesuada, vitae tempor orci tincidunt. In lacus risus, efficitur ut erat vel, lacinia vulputate velit. Sed orci ligula, venenatis sed nisi id, varius scelerisque diam. In ut volutpat ligula, nec sodales sem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In fermentum ac neque non suscipit. Cras aliquam, eros sed molestie lacinia, dolor dui suscipit purus, ac maximus quam leo a magna. Mauris sed ipsum a magna hendrerit interdum at non erat. Sed blandit elementum libero quis placerat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur semper auctor augue vel laoreet. Aliquam ac interdum dui, ullamcorper malesuada justo. Proin non efficitur lectus. Nam quam arcu, laoreet in volutpat non, condimentum vulputate nulla. Phasellus sit amet tellus facilisis odio dignissim maximus. Proin accumsan volutpat nunc, id pulvinar mi consequat ut. Pellentesque nec congue libero. Cras mauris nisl, pharetra sit amet semper ut, sodales quis urna. Aenean mollis quam felis, id cursus nunc pulvinar sed. Sed a urna pharetra, hendrerit massa ac, sodales urna. Pellentesque nec congue mi, in condimentum mi. Aliquam lacinia lacus at venenatis ultricies.",
    "__v" : 0
}

Вот как выглядит файл e js:

<!DOCTYPE html>
<html>

<head>
  <title>Rig Guides</title>
  <%- include ('partials/product_head') %>
</head>

<body>

  <!-- ========= NAV BAR ============= -->
  <%- include ('partials/navbar') %>
  <div id="build-title" class=" py-5">
    <h6 class="text-center dark-blue text-uppercase">Rig Guide</h6>
    <h3 class="text-center bold-font"><%= post.title %></h3>
    <h5 class="text-center">By <%= post.author %></h5>
  </div>
  <div class="container-fluid guide-container">
    <div class="row justify-content-center">
      <div class="col-xl-6 col-lg-8 col-md-8">
        <p class="guide-content my-5 py-2"><%= post.content %></p>
      </div>
    </div>
  </div>


  <%- include ('partials/footer') %>
  <script src="js/guide.js"></script>
</body>

</html>

, и вот вывод на моем развернутом веб-сайте at rodrigger.com изображение веб-сайта

Как видите, значения заголовка и содержимого расположены на странице, но значение свойства "author" не является шаблоном b / c следует сказать «Автор [Автор]»

1 Ответ

0 голосов
/ 09 апреля 2020

Очевидно, что проблема была связана с БД и данными, полученными из нее.

Я использовал этот вызов для получения данных из БД:

 var data = await Guide.find({
    title: req.params.title
  }).exec();

Я добавил эту строку на всякий случай, если в данных был какой-то «дефект», если это то, что вы бы назвали это.

data = JSON.parse(JSON.stringify(data)):

и, конечно же, E JS смог правильно шаблонизировать данные. Затем я понял, что .find () в mon goose возвращает фактический документ Mon goose, а не объект Javascript, поэтому, вероятно, E JS не может шаблонировать данные. Тогда я использовал .lean (), и это решило мою проблему.

var data = await Guide.find({
    title: req.params.title
  }).lean().exec();
...