Javascript 是否可以使用res.render多次渲染局部变量
我有一个关于res.render的问题。我正在尝试为我的网站构建一个非常简单的消息功能,而不是像个人消息、Dms等那样的实时聊天。我正在使用Handlebar来呈现html和node.jsJavascript 是否可以使用res.render多次渲染局部变量,javascript,node.js,express,handlebars.js,Javascript,Node.js,Express,Handlebars.js,我有一个关于res.render的问题。我正在尝试为我的网站构建一个非常简单的消息功能,而不是像个人消息、Dms等那样的实时聊天。我正在使用Handlebar来呈现html和node.js app.get('/dashboard/messages/',ensureAuthenticated,function(req,res) { res.render('messages'); Msg.find({ username: req.user.username }, 'username mess
app.get('/dashboard/messages/',ensureAuthenticated,function(req,res) {
res.render('messages');
Msg.find({ username: req.user.username }, 'username message sender', function (err, msg) {
if (err) {
console.log('notfound')
return handleError(err);
} else{
var msgSender = []
msg.forEach(function(msg){
var Obj = {
'sender': msg.sender,
'message':msg.message
}
msgSender.push(Obj)
})
console.log(msgSender.sender)
res.render('messages',{'sender': msgSender.sender, 'message': msgSender.message})
主要的问题是,如果我放置一个for循环,则渲染只加载发送给用户的最后一条消息。而且你不能设置标题。我在考虑做一个实验
res.send{'sender':msgSender.sender,'message':msgSender.message})
。这是可处理的条形码:
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Messages</h3>
</div>
<div class="panel-body">
<h1>From: {{sender}}</h1>
<h3><p>Message: {{message}}</p></h3>
</div>
</div>
信息
发件人:{{sender}}
消息:{{Message}}
那么问题出在哪里?这不起作用?@AkarshSatija不,它只会加载一个空的白色页面。这意味着呈现或传递的数据有问题。尝试只打印输出对象,而不是呈现模板res.json(msgSender)
@AkarshSatija我不认为这样,我可以完美地传递一条消息,但我需要同时呈现页面和消息。一旦你发送了一个res,你就不能发送更多的数据了,这是我得到的印象。那么问题是什么呢?这不起作用?@AkarshSatija不,它只会加载一个空的白色页面。这意味着呈现或传递的数据有问题。尝试只打印输出对象,而不是呈现模板res.json(msgSender)
@AkarshSatija我不认为这样,我可以完美地传递一条消息,但我需要同时呈现页面和消息。一旦你发送了一个res,你就不能发送更多的数据了,这是我得到的印象。