我有这个问题:
我有一个使用router.get(Express)服务的get请求。
在此功能中,我习惯于从sql db中获取数据。现在我有了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>
答案 0 :(得分:1)
您似乎没有将数组(ChatList)传递给视图。 您可以通过将代码更改为此:
...
getChatData(Chats,mittente).then(ChatList=>{
console.log("Lista2: " +ChatList);
res.render('chatlist', {objects: ChatList}) ;
})
...
这样,您就可以在视图中使用数组“对象”,并且可以对其进行迭代。
您的页面现在应该变为:
<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>