如何从脚本而不是 html 访问 res.locals

How to access res.locals from script instead of html

我可以在客户端像这样打印我的 res.locals.myData<%= myData%>

如何在脚本中使用它?这不起作用:

<script type="text/javascript">
var receivedData = myData
</script>

编辑 服务器输出使用 res.locals.myData:

[ '83',
  { v: 294,
    f: '29 <img src="img/Gold.png">  <img src="img/Silver.png"> 94 <img src="img/Copper.png">' },
  { v: 210,
    f: '21 <img src="img/Gold.png">  <img src="img/Silver.png"> 10 <img src="img/Copper.png">' },
  { v: 1.38 } ]

使用console.log(<%= sendTableData%>) 代码呈现如下:

console.log(83,[object Object],[object Object],[object Object])

这给出了

Unexpected identifier 'Object'

错误

EDIT2 我尝试过的另一种方法是使用 JSON.stringify 和 JSON.parse,但是使用 res.locals 发送时字符串会发生一些变化。一小段字符串:["83",{"v":294,"f":"29 到达时是这样的:&#34;83&#34;,{&#34;v&#34;:294,&#34;f&#34;:&#34;29。它改变了引号?无论如何,我宁愿避免使用这种方法并将其作为原始数据发送。

Edit3 解决方案是在将数据作为字符串发送后使用 <%- myData%> 客户端(注意 - 而不是 =)。

使用以下客户端:

res.locals.myData = JSON.stringify(myData)

以及以下客户端:

var tableData = <%- myData%>; // For .ejs
var tableData = !{myData} // For .jade (I think)