簡體   English   中英

將JSON響應作為變量解析為node.js / express中的車把視圖

[英]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
"&quot;{&quot;data&quot;:[{&quot;project&quot;:&quot;project 1&quot;,&quot;details&quot;:&quot;details of project 1&quot;},{&quot;project&quot;:&quot;project 2&quot;,&quot;details&quot;:&quot;some other details&quot;}],&quot;message&quot;:&quot;ok&quot;,&quot;code&quot;:200}&quot;"

我想要做的是渲染一個頁面,該頁面將使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM