在Javascript逻辑中访问EJSvariables

我正在开发一个NodeJS应用程序(这是一个游戏)。 在这种情况下,我build立了一些代码,当一个人访问索引并select一个房间时,他被redirect到合适的房间。

现在正在做这样的事情,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逻辑? 我希望能够做到像gs =〜import ejs gameState〜这样的东西

然后就可以做任何我想要的东西 – 访问它的variables,打印出来进行控制台validation。 最后,我想用这个gameState做的是正确地显示板,要做到这一点,我需要做的事情,如访问件的位置,然后正确地显示在屏幕上。

谢谢!

你可以直接将gameStatevariables注入到页面上的javascript中。

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

另一个select可能是一旦页面已经加载,将AJAX调用回服务器,返回gameState JSON,并将clientGameState设置为JSON响应。

您也可能对此感兴趣: 如何在Node.js和浏览器之间共享代码?

我觉得下面的逻辑更好,对我也有效。

假设传递给ejs页面的variables是uid ,你可以得到div标签的内容或传递variables的h标签。 您可以访问脚本中div或h标记的内容,并将其分配给一个variables。

代码示例如下:(在ejs中)

 <script type="text/javascript"> $(document).ready(function() { var x = $("#uid").html(); alert(x); // now JS variable 'x' has the uid that's passed from the node backend. }); </script> <h2 style="display:none;" id="uid"><%=uid %></h2>