Javascript 如何通过NodeJS服务器发送Json对象来表示Handlebar html?
我使用的是NodeJS后端和express Handlebar作为前端的模板。我正在从mysql数据库获取json文件,并将其发送到dashboard.hbs文件。问题是json将进入浏览器,只要从html访问它,它就会正确显示所有内容,但在脚本中它会变得疯狂。有人能告诉我我做错了什么吗?我已经浏览了很多网站。这些都不管用。我还在hbs中使用register helper来处理stringyfying json,但它仍然向我显示奇怪的转换json。这是我的密码Javascript 如何通过NodeJS服务器发送Json对象来表示Handlebar html?,javascript,json,node.js,Javascript,Json,Node.js,我使用的是NodeJS后端和express Handlebar作为前端的模板。我正在从mysql数据库获取json文件,并将其发送到dashboard.hbs文件。问题是json将进入浏览器,只要从html访问它,它就会正确显示所有内容,但在脚本中它会变得疯狂。有人能告诉我我做错了什么吗?我已经浏览了很多网站。这些都不管用。我还在hbs中使用register helper来处理stringyfying json,但它仍然向我显示奇怪的转换json。这是我的密码 exports.dashboa
exports.dashboard = function (req, res) {
//var dashboards=dashboardModel.findAll({ include: [{ all: true }]});
var dasboard = null;
dashboardModel.findAll().then(dasboards => {
dasboard = dasboards;
if (dasboard.length > 0)
console.log(dasboard[9].monster);
else
console.log('no dashboard');
var jsss=JSON.parse(dasboard[9].monster);
var st=JSON.stringify(jsss);
console.log(st);
res.render('dashboard', {
dasboard: dasboard,
js:jsss
});
})
}
这是我的模板
<!DOCTYPE html>
<html>
<head>
<title>FaceMask API</title>
</head>
<body>
<h2>The list of Monsters</h2>
{{#if dasboard}}
<table>
<tr>
<th>PRODUCT ID</th>
<th>GIF_ID</th>
<th>GIF_TITLE</th>
<th>PRICE</th>
<th>Monster </th>
<th>GIF_PACK</th>
</tr>
{{#each dasboard}}
<tr onclick="gotoEditDashboard('{{this.id}}')">
<td>{{this.product_id}}</td>
<td>{{this.gif_id}}</td>
<td>{{this.gif_titile}}</td>
<td>{{this.price}}</td>
<td>{{this.monster}}</td>
<td>{{this.gif_pack}}</td>
</tr>
{{/each}}
</table>
{{else}}
<p> No Data Available {{dasboard}}</p>
{{/if}}
<script src="javascripts/dashboard.js"></script>
<script type="text/javascript">
var j="{{{ js}}}";
//var jsss=JSON.parse(j);
console.log(j[2].toString());
//console.log("asd: "+jsss[0].fileName);
</script>
</body>
</html>
但在浏览器中,我只得到一个对象,如果我试图将其解析为json或尝试直接使用它,就会发生错误。我已经说过,我尝试使用registerHelper for express Handlebar,如果它这样做了,那么我会得到以下json
[{"fileName":"blob_1527417588127.jpg","fileLink":"localhost:3000/img/blob_1527417588127.jpg"},{"fileName":"blob_1527417588127.jpg","fileLink":"localhost:3000/img/blob_1527417588127.jpg"}]
奇怪的是,在html部分,我也在打印monster json,它显示得非常完美,但当我从脚本打印时,它会变得疯狂。有人能帮我吗?这很奇怪,但我找到了我自己问题的答案。也许它会帮助像我一样掉进同一个坑里的人。因此,在html文件内的脚本中,您可以编写以下代码来解码json对象的数组
{{#each js}}
var obj = {};
{{#each this}}
obj.{{@key}} = '{{this}}';
{{/each}}
m.push(obj);
{{/each}}
这就是你在服务器上写的东西
var k=[];
var s={
"a":"as",
"b": "ee"
};
var s1={
"a":"ast",
"b": "eet"
};
k.push(s);
k.push(s1);
app.get('/', function(req, res){
res.render('index', {js:k});
});
var k=[];
var s={
"a":"as",
"b": "ee"
};
var s1={
"a":"ast",
"b": "eet"
};
k.push(s);
k.push(s1);
app.get('/', function(req, res){
res.render('index', {js:k});
});