我正在处理一个 node .js应用(这是一款游戏).在本例中,我设置了一些代码,当一个人访问索引并 Select 一个房间时,他会被重定向到正确的房间.

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

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

在船上.ejs I可以通过以下代码访问游戏状态:

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

有没有办法将其导入JavaScript逻辑?我希望能够做一些像var gs = ~import ejs gameState~这样的事情,然后能够用它做任何我想做的事情——访问它的变量,将其打印到控制台进行验证.最终,我想用这个游戏状态来正确显示棋盘,要做到这一点,我需要访问棋子的位置,然后在屏幕上正确显示它们.

谢谢

推荐答案

您可以直接将gameState变量注入页面上的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?

Node.js相关问答推荐

Google Drive API返回200(HTTP成功)用于测试pdf输出,但没有文件

赫斯基添加命令已弃用?

CloudTasksClient在Firebase Function % s onDocumentCreated中实例化时导致错误

使用NodeJS的DynamoDB中的BatchGetItem出现MultipleValidationError

获取页面大小为10的所有文章,每篇文章填充一些所需的用户信息

即使卷已设置,Docker Nodemon 也不会热重载

Prisma 和 Nextjs:重新部署之前内容不会更新

如何使用对象中的常量值验证字符串字段?

错误:无法为 /blog 收集页面数据并且在 object.fetch 处获取失败

无法关闭 node.js 中的mongoose 连接

Express.js cookie setter 的 Domain 属性:如何与 *多个 * 域共享 cookie?

如何使用来自前一阶段的另一个数组的聚合mongoose 在数组中添加字段

使用Typescript 时我应该避免循环导入吗?

Pug - 包括带有include关键字的c代码

为什么我在生产环境中 deproy Next.js 示例项目时 CSS 不起作用?

npm 不会安装 express 吗?

无法获取 CSS 文件

如何将子集合添加到 Firestore 中的文档?

在 Node.js 中使用公钥加密数据

如何在 NodeJS 中拆分和修改字符串?