我正在从一个页面路由到另一个页面,并尝试在我的用户 display.js 中的下一页上显示数据库查询的内容
exports.list = (req, res) => {
console.log("we have activated userdisplay.js\n");
db.query('SELECT * FROM User', (error, results, fields) =>
{
console.log('we did a query');
if(error)
{
console.log("Error: ",error);
res.send({
"code": 400,
"failed": "Error occurred"
});
} else {
console.log("Results: ",results);
/*res.send({
"code": 200,
"success": "Database successfully logged"
});*/
res.render('tempdisplay.html', {data: results});
}
});
}
所以我有了数据,但现在我需要显示它。我尝试使用 Handlebars 将 tempdisplay.html 文件中 res.render() 发送的数据对象转换为使用
的字符串<script>
var user = [
{{#each data}}
{
email: '{{email}}',
fname: '{{fname}}',
lname: '{{lname}}',
pass: '{{pass}}'
}
{{/each}}
];
</script>
当我尝试运行它以将它们转换为字符串时,它给我一个“无效的正则表达式:文件中缺少/”错误。仅当存在此脚本时才会发生此错误。我的文件中包含 jquery 和 Handlebars ,我的其他文件与 paths/cdn 一起使用。我似乎不太明白如何使用 Handlebars 来显示数据。如果我创建另一个 js 文件,我将无法看到返回到 tempdisplay 的数据对象,但如果我尝试在 html 文件中创建一个 Handlebars 脚本,则会出现语法错误。
最佳答案
要在客户端显示数据,通常的方法是将其插入到服务器上的模板中:
// fill tempdisplay.hbs with results, send to client
res.render('tempdisplay', {data: results});
模板文件 tempdisplay.hbs
的示例如下:
<table>
<tbody>
{{#each data}}
<tr>
<td>{{this.fname}}</td>
<td>{{this.lname}}</td>
</tr>
{{/each}}
</tbody>
</table>
关于javascript - 使用 Node.js 和 Handlebars 显示数据库查询的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541074/