javascript - 在 Javascript 逻辑中访问 EJS 变量

标签 javascript node.js express ejs

我正在开发一个 Node.js 应用程序(这是一个游戏)。在这种情况下,我设置了一些代码,这样当一个人访问索引并选择一个房间时,他会被重定向到正确的房间。

现在,Express v2.5.8 就是这样完成的:

server.get("/room/:name/:roomId, function (req, res) {
  game = ~databaseLookup~
  res.render("board", { gameState : game.gameState });
}

在 board.ejs 中,我可以使用如下代码访问 gameState 方式:

<% if (gameState) { %>
  <h2>I have a game state!</h2>
<% } %>

有没有办法将它导入到我的 JavaScript 逻辑中?我希望能够执行 var gs = ~import ejs gameState~ 之类的操作,然后能够对它做任何我想做的事情——访问它的变量,将其打印到控制台进行验证。最终,我想用这个 gameState 做的是正确显示棋盘,为此我需要做一些事情,比如访问棋子的位置,然后在屏幕上正确显示它们。

谢谢!

最佳答案

您可以直接将gameState变量注入(inject)页面上的javascript。

<% if (gameState) { %>
     <h2>I have a game state!</h2>
     <script>
        var clientGameState = <%= gameState %>            
     </script>
<% } %>

另一个选项可能是在页面已经加载后向服务器进行 AJAX 回调,返回 gameState JSON,并将 clientGameState 设置为 JSON 响应。

您可能也对此感兴趣:How can I share code between Node.js and the browser?

关于javascript - 在 Javascript 逻辑中访问 EJS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11289793/

相关文章:

javascript - 有没有办法将 JS 属性的 setter/getter 抽象为对象的原型(prototype)?

javascript - Nodejs中异步csv转JSON数据输出

javascript - 对齐元素以具有相同的高度

node.js 在向 mongodb 中插入许多记录时静默停止

javascript - Angular 2 - 预加载背景图片?

javascript - 如何在 Node JS 中使用 jwt 向所有用户授权不同的 token

mongodb - 清理 Express 应用程序中的输入字段

node.js - 环境变量在 Node js 服务器中不起作用

javascript - 在 Chrome 中设置输入文件文本颜色时出现问题

javascript - 单击 d3 路径后更改样式