javascript - 在express.js 上使用 ejs (ejs-locals) 插入带有数据的脚本标签

标签 javascript node.js express ejs

我正在将 ejs-locals 用于 Express 3.x (https://github.com/RandomEtc/ejs-locals)

如何从具有动态数据的模板插入脚本标记?

在我的layout.ejs中我有

<%- block.scripts %>

在我的页面模板 login.ejs 中,我想用一些动态数据替换它:

<% block('scripts', "<script> var app = window.app || {}; app.err = <%- JSON.stringify(err) %>, app.q = <%- JSON.stringify(q) %>; </script>") -%>

我收到错误:

500 SyntaxError: Unexpected token % -- 我假设是因为我做不到 <%= JSON.stringigy(err) %>在这里。

最佳答案

我通过将脚本插入移动到layout.ejs解决了这个问题,因为它总是相同的。

    <% include script %>
  </body>

否则,您必须终止字符串:

//this works but is rather cumbersome to do on every page template.
  <% block('script', '<script>' +
    'app.req.err = '+ JSON.stringify(err) +";\n" +
    'app.req.q = '+ JSON.stringify(q) +";\n" +
  '</script>') %>

关于javascript - 在express.js 上使用 ejs (ejs-locals) 插入带有数据的脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542056/

相关文章:

javascript - Return 语句与之前的用法不一致 - JQuery

javascript - Cypress 断言失败但测试通过

javascript - 无法获取/用户/测试nodejs

javascript - 通过回调将值传递给父函数

node.js - 如何使用 Passport/Facebook 策略/验证 Supertest 请求?

javascript - 如何使用 Joi 最新版本验证枚举字符串?

javascript - 如何在res之后保留动态更改的html。(任何内容)

javascript - 如何使用javascript从下拉菜单中更改网页的背景颜色需要这个

javascript - 为什么 mozilla firefox 会记录来自 socket.io 1.2.1 的许多消息

javascript - 如何在 JSON 中选择此条目title_link/_text