[英]Parsing JSON response as a variable to handlebars view in node.js / express
我正在寻找一种呈现视图的方法,该视图将具有包含从API提取的数据的变量。 我正在使用快递,车把和请求。
这是网络服务器的路由器代码:
const express = require('express');
const router = express.Router();
const request = require('request');
router.get('/projects', (req, res) => {
request('http://localhost:8080/NpZke93tNYf9eR07fIDm/reports/projects', (error, response, body) => {
res.render('projectsPage', {projects: JSON.stringify(response.body)});
})
});
// returns:
// {"data":[{"project":"project 1","details":"details of project 1"},{"project":"project 2","details":"some other details"}],"message":"ok","code":200}
这是车把视图的代码(projectsPage.hbs):
<h1>Available Projects</h1>
<script>
var myData = "{{projects}}";
</script>
问题是当渲染视图时,myData变量包含无法由JSON.parse()解析的内容。
>myVar
""{"data":[{"project":"project 1","details":"details of project 1"},{"project":"project 2","details":"some other details"}],"message":"ok","code":200}""
我想要做的是渲染一个页面,该页面将使用Chart.js呈现数据(这就是为什么我需要将数据作为对象使用的原因)。 我不想从前端直接调用API(不公开api密钥)。
有没有一种方法可以使它工作而不必使用String.replace()方法? 我的方法有效还是有更好的方法来做到这一点?
更改
<h1>Available Projects</h1>
<script>
var myData = "{{projects}}";
</script>
至
<h1>Available Projects</h1>
<script>
var myData = {{{projects}}}
</script>
在JavaScript上创建Chart实例时,请使用以下命令:
data: JSON.parse(myData),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.