一尘不染

在Javascript逻辑中访问EJS变量

node.js

我正在开发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做的是正确显示棋盘,然后要做一些事情,例如访问棋子的位置,然后在屏幕上正确显示它们。

谢谢!


阅读 263

收藏
2020-07-07

共1个答案

一尘不染

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

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

另一种选择是在页面加载完成后,向服务器进行AJAX调用,返回gameState JSON,并将clientGameState设置为JSON响应。

2020-07-07