试图将一些数据从nodejs发送到html中的脚本



我使用hbs作为前端视图。我试图发送数据到我的脚本在html从nodejs像这样:

router.get('/home',authController.isLoggedIn, (req ,res) => {
if(req.user){
db.query('SELECT * FROM posts ORDER BY id desc ', (error,results) => {
if (error) {
console.log(error);
} else {
let categories;
db.query('SELECT * FROM categories', (error,result) => {
if (error) {
console.log(error);
} else {
console.log(result);
categories = result;
return res.render('home',{
results: results,
categories: categories
});
}
});
}
});
}else {
res.redirect('/login');
}

});

然后当我试图在脚本中使用javaScript调用它时,它告诉我有问题

<script>
alert(results);
</script>

我想知道如何正确调用脚本

中的对象编辑:

数据应该是这样的:

[
RowDataPacket { id: 1, category: 'Music' },
RowDataPacket { id: 2, category: 'Memes' },
RowDataPacket { id: 3, category: 'Tech' }
]

对于EJS示例,如果传递数据msgs:

res.render("index.ejs", { 
msgs
})
  1. js处理数据:
<p>
<% 
msgs = msgs.map(function(msg) {
return '<div>' + msg.name + '</div>' + '<div>' + msg.msg + '</div>'+ '<div>' + msg.time + '</div>'
}) 
%>
</p>
  1. 直接打印:
<p><%- msgs.join("<hr />") %></p>
  1. 保存为全局变量
<script>
window.serverMsgs = <%- msgs %>;
</script>

车把:

<script>
window.serverMsgs = {{msgs}};
alert(window.serverMsgs)

{{#each results}}
{
"id": {{id}},
"category": "{{category}}",
}
{{#unless @last}},{{/unless}}
{{/each}}
</script>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>{{title}} - Page Test</title>
</head>
<body>
<div class="description">{{description}}</div>
<ul>
{{#datas}}
<li class="item" id="item_{{index}}"><span>{{time}}</span><a href="{{url}}" class="art">{{title}}</a></li>
{{/datas}}
</ul>
</body>
</html>

你可以检查这个类似的问题:)如何在

最新更新