我一直在努力解决这个问题,我肯定有一个简单的答案,足够长的时间来寻求帮助。我正在尝试将数组(famlist)的内容输出到Node.js / handlebars webapp中的网页。我很确定我的问题围绕着将数组传递给index.hbs中的render.get语句。 family.log for familylist确实可以正常工作。我删除了所有失败的尝试,并将其列在下面,因为它在没有阵列工作的情况下工作。我正在寻找我需要添加的内容...提前感谢您的帮助!
这是我的代码:
把手查看页面
<p> Currently entered list:
<ul class="people_list">
{{#each famArray}}
<li>{{this}}</li>
{{/each}}
</ul>
</p>
{{#if errors}}
{{#each errors}}
<div class="alert alert-danger">
{{this.msg}}
</div>
{{/each}}
{{/if}}
Index.hbs部分:
router.get('/profile', authenticationMiddleware(), function(req, res) {
const db = require('../db.js');
db.query("SELECT * FROM users WHERE id = " + req.user.user_id, function(error, results, fields) {
if (error) throw error;
username = results[0].username;
db.query(`SELECT familyname FROM family WHERE user = "${username}"`, function(error, results, fields) {
if (error) throw error;
var famlist = results;
console.log(famlist);
res.render('profile', {
famlist: famlist
} {
title: 'Profile'
});
function createHTML(results) {
var rawtemplate = document.getElementById("famtemplate").innerHTML;
var compiledTemplate = Handlebars.compile(rawTemplate);
var ourGeneratedHTML = compiledTemplate(results);
var famContainer = document.getElementById("fam-container");
famContainer.innerHTML = ourGeneratedHTML;
}
});
});
});
答案 0 :(得分:0)
您的渲染应该在数据库调用之后,并采用以下格式:
res.render('profile', {
famlist: famlist,
title: 'Profile'
})