在服务器端使用Express-Handlebars在node.js上显示字符串集合

时间:2018-07-16 11:11:59

标签: mysql node.js express-handlebars

我有要使用Express-Handlebars显示的sql查询结果

var x={} ;

// friends表具有名称| profileName |状态属性

 dao.findFriends(req.session.UserName,function(err,rows,fields){
    x=rows;
    for(var i=0;i<rows.length;i++){
        console.log(rows[i].profileName);   
    }
});

res.render('home',{body:'hello ...'+req.session.UserName,friends:x});

简单字符串显示正常 而不是sql结果

<table>
    <tr>
      <th>Name</th>

    </tr>
    {{#each friends}}
    <tr>
      <td>{{profileName}}</td>

    </tr>
    {{/each}}
  </table>

1 个答案:

答案 0 :(得分:0)

找到了! 必须使变量 x 接受json数组和.. 并将所有结果推送到for循环内的 x

var x =[];
dao.findFriends(req.session.UserName,function(err,rows,fields){
            if(!err){
            console.log('listing friends');
            //list in bunch of <li> <ul> </ul>
                for(var i=0;i<rows.length;i++){
                    console.log(rows[i].profileName);
                    //x = rows;
                    x.push({
                                    profileName: rows[i].profileName
                                });
                    }
                }
                else
                console.log('err finding people...');
                res.render('home',{body:'hello ...'+req.session.UserName,friends:x});
            });

在html端是指具有 this 前缀

的字段
<table>
<tr>
  <th>Name</th>

</tr>
{{#each friends}}
<tr>
  <td>{{this.profileName}}</td>

</tr>
{{/each}}