【问题标题】:How can I acess a array from node.js in javacsript with ejs如何使用 ejs 从 javascript 中的 node.js 访问数组
【发布时间】:2021-11-18 07:45:10
【问题描述】:

所以我正在制作一个应用程序,它需要将一个数组从服务器传递到客户端。我已经尝试过

// Server
app.get('/', (req,res) => {
  res.render('index', {
    data: ["Hello"]
  })
})

// EJS
<script>
  const data = '<%- JSON.stringify(locals.data) || [] %>'
</script>

然后它不是 ejs 中的数组所以我尝试了

// Server
app.get('/', (req,res) => {
  res.render('index', {
    data: ["Hello"]
  })
})

// EJS
<script>
  const data = JSON.parse('<%- JSON.stringify(locals.data) || [] %>')
</script>

直到我传递了一个包含' 的数组之前,我是否可以将数组传递到 javascript 中但遇到某些章程问题?

这是使用不和谐机器人来获取服务器并将它们显示在页面上。所以我想确保它可以显示所有字符。

如果我将' 更改为" 或`,它仍然可能导致某些输入出现问题。

谢谢。

【问题讨论】:

  • 好吧,最好的方法是使用JSON.parse(&lt;%- JSON.stringify(locals.data) || [] %&gt;),因为即使看起来只是语法错误,ejs 也会自动呈现它。
  • 谢谢,但我必须删除 const data = JSON.parse(&lt;%- JSON.stringify(locals.data) || [] %&gt;) 并将其保留为 const data = &lt;%- JSON.stringify(locals.data) || [] %&gt;
  • 哦,是的,它刚刚从我的脑海中溜走!

标签: javascript node.js express ejs


【解决方案1】:

这就是@hacKaTun3s 的答案:

const data = <%- JSON.stringify(locals.data) || [] %>

但这会导致语法错误并且可能很烦人,所以我正在使用这个:

EJS:

<p hidden id=scrpt_get_locals><%= JSON.stringify(locals) %></p>

它将被隐藏,我们将在脚本中访问其内容。

JAVASCRIPT:(延迟)

const locals = JSON.parse(document.getElementById('scrpt_get_locals').innerText) // Get element text that has locals, then parse it
document.getElementById('scrpt_get_locals').innerText = '' // Remove the text (So we don't have a random element with the locals
document.getElementById('scrpt_get_locals').id = '' // Remove id (Optional)

编辑:

顶部访问你想要的变量数据:

console.log(locals.data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    相关资源
    最近更新 更多