0

我正在使用 nunjucks 模板学习 expressjs,mongodb。数组通过以下方式从服务器发送到 html:

poll.find().sort({'date': -1}).toArray(function(err,docs){
        res.render("home",{polls:docs});
    });

变量 polls 是一个对象数组。我能够在 html 视图中成功访问 polls 数组,但我不知道如何在客户端 js 文件中访问它以使用数组内的数据绘制图表。

如果我使用<input type='hidden value='{{ polls }}'>,它将被转换为字符串和数组,其中的对象无法在客户端 js 中访问。可以做什么?

4

2 回答 2

0

我不知道 nunjucks 做什么,但 express 将所有非标量数据(= 对象和数组)作为JSON-string发送。

只需使用类似的东西

var body = JSON.parse(responseText);

在客户端上取回原始对象/数组。

于 2016-01-11T16:40:12.477 回答
0

要使其正确访问,您需要输出投票,通过JSON.stringify它将您的 javascript 数组转换为 json 格式:JSON.stringify(polls).

所以,

<input type="hidden" value="{{ JSON.stringify(polls) }}" />

或者在 javascript 中访问它:

<script>
    var polls = "{{ JSON.stringify(polls) }}";
</script>

或者在服务器端执行此操作以使其更快(而不是客户端)会更好:

res.render("home", { 
  polls: JSON.stringify(docs)
});
于 2016-01-11T16:52:27.443 回答