【问题标题】:Is it possible to use ejs files also as static files in the standard "public" folder? (Node / Express)是否可以将 ejs 文件也用作标准“公共”文件夹中的静态文件? (节点/快递)
【发布时间】:2021-08-04 22:47:20
【问题描述】:

我正在学习 Node/Express/socket.io - 我按照说明使用 ejs 文件来定义我的页面并动态更改它们。

问题是我想通过 socket.io 使用命名空间的特性。如果用户“John”在房间“1”中,他不应该收到来自房间“2”中用户“Jack”的任何消息。为了在前端直观地实现这一点,我需要在客户端站点上操作 html 文件(或 ejs)文件。然而,似乎 ejs 将服务器端的所有文件保存在“views”文件夹中 - 因此目前“John”和“Jack”会看到所有消息,即使是在两个不同的房间。

是否有任何选项可以以某种方式将“聊天页面”定义为静态并保留在“公共”文件夹中,而其余的 ejs 文件仍保留在视图文件夹中?

【问题讨论】:

  • 请更详细地描述您使用命名空间的实际聊天问题,因为您应该能够仅在客户端代码中完全解决该问题,而无需操作文件本身。
  • 我不确定你到底是什么意思,但就像上面的评论所说,这可以完全在前端完成。您可以使用 res.render 提供 ejs 文件,也可以使用 res.sendFIle() 发送静态 html 文件,这完全取决于您的需要。在您的前端,您可以使用 js 来接收事件(获取消息或您想要做的任何事情)

标签: node.js express socket.io ejs


【解决方案1】:

一个解决方案似乎是 res.sendFile() 但不确定这是否是最好的。

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 2021-11-29
    • 2016-03-08
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    相关资源
    最近更新 更多