Node.js&把手:页面

时间:2017-11-12 00:01:06

标签: arrays node.js handlebars.js

我一直在努力解决这个问题,我肯定有一个简单的答案,足够长的时间来寻求帮助。我正在尝试将数组(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;
        }
    });
});

});

1 个答案:

答案 0 :(得分:0)

您的渲染应该在数据库调用之后,并采用以下格式:

res.render('profile', {
  famlist: famlist,
  title: 'Profile'
})