我正在开发一个 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/