使用 Json 数据呈现 HTML 页面

Render HTML Page with Json data


我有这个问题:
我有一个使用 router.get (Express) 服务的获取请求。 在这个函数中,我用来从我的 sql 数据库中获取数据。现在我有 JSON 格式的数据。
我想将 json 数据传递给车把,并使用 html 内呈现的数据将响应发送给客户端仅(渲染完全在服务器端进行)。
也许我有点困惑:
我想做什么有解决方案吗?


快递:

//CHAT
router.get('/chatlist', ensureAuthenticated, (req,res)=>{
    let mittente = req.user.id;
    findUsersChat(mittente)
    .then(Chats=>{
        getChatData(Chats,mittente).then(ChatList=>{
            console.log("Lista2: " +ChatList);
            var obj=JSON.parse(ChatList);
            res.render('chatlist') ;
        })
        .catch(err=>console.log(err))

    });

})


车把

<section id="gigs" class="container">
    <h1>Chats Available</h1>

        {{#each obj}}
        <h1>{{Nome}}</h1>
        <div class="form-group">
          <form method="POST" action="/users/chat">  
            <p>Utente numero : {{@index}}</p>
            <label for="name" value={{Nome}}>{{Nome}}</label>

          </form>

        </div>
        {{/each}}
  </section>

您似乎没有将数组 (ChatList) 传递给您的视图。 您可以通过将代码更改为:

...
        getChatData(Chats,mittente).then(ChatList=>{
            console.log("Lista2: " +ChatList);
            res.render('chatlist', {objects: ChatList}) ;
        })
...

通过这样做,一个数组 "objects" 将在您的视图中可用,您可以对其进行迭代。

您的页面现在应该变成:

<section id="gigs" class="container">
    <h1>Chats Available</h1>

        {{#each objects}}
        <h1>{{./Nome}}</h1>
        <div class="form-group">
          <form method="POST" action="/users/chat">  
            <p>Utente numero : {{@index}}</p>
            <label for="name" value={{./Nome}}>{{./Nome}}</label>

          </form>

        </div>
        {{/each}}
  </section>