在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>
- 如何获得node.js中的url资源path匹配expression式?
- 在express / nodejs中退出特定链路的中间件
- 在Nodejs / Express中链接承诺的最佳实践
- 如何在运行python代码和nodejs之间进行通信
- 使用相同path中的Nodemon启动多个Express应用程序
- 为什么当我把我的HTML格式的电子邮件发送到我的快递服务器时,给我一个“你发送的名字未定义”的错误?
- PassportJS(Google OpenID)在req.user中没有任何内容
- 如何在Node.js + Express + Mongoose + Jade中处理表单validation,特别是嵌套模型
- Express js多个操作gm(GraphicsMagick)模块