簡體   English   中英

EJS 沒有對給定 object 的所有屬性進行模板化

[英]EJS not templating all properties from given object

因此,我正在嘗試將 JSON object 模板化為 ejs 視圖。 但是,只有來自給定 object 的一些屬性被模板化到視圖中。 當我在本地主機上運行我的網站時,它工作正常,但是當我在部署相同代碼的 VPS 上運行它時,它就不起作用了。

這是 object 的樣子:

{
    "_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
}

這是 ejs 文件的樣子:

<!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>

這是我在rodrigger部署的網站上的output。網站的com圖像

如您所見,標題和內容值被模板化到頁面上,但屬性“作者”的值沒有被模板化 b/c 它應該說“由 [作者]”

顯然,問題與數據庫和從中檢索的數據有關。

我使用此調用從數據庫中獲取數據:

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

我添加了這一行,以防萬一數據中有一些“缺陷”,如果這就是你所說的。

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

果然,EJS 能夠正確地模板化數據。 Then I realized.find() in mongoose returns the actual Mongoose Document and not a Javascript Object which is probably why EJS couldn't template the data. 所以我然后使用了.lean() 它解決了我的問題。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM