私はこの問題を解決するために戦ってきましたが、私は確かに簡単な答えを持っています。私は配列(famlist)の内容をNode.js/handlebars webappのWebページに出力しようとしています。私の問題は、index.hbs内のrender.getステートメントに配列を渡すことを中心に行われています。 familylistのconsole.logは正しく動作します。失敗した試行をすべて削除し、アレイが機能していない場合は以下のように表示されます。私は私が追加する必要があるものを探しています...事前に任意のヘルプのおかげで!Node.js&Handlebars:レンダリング配列
ここに私のコード:
ハンドルバーを表示ページ:
<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;
}
});
});
});
が表示されません。また、 'res.render'はdbクエリの後になければなりません - あなたの' console.log'はどこにありますか? – dzm
お返事ありがとうございます。レンダリングセクションを指定した場所に移動し、配列呼び出しを行ったと思います。しかし、それは動作しません。どんな助けもありがとう! –