【发布时间】:2022-08-21 13:35:57
【问题描述】:
我正在设计一个网站,用户可以在页面上上传 cmets,其他用户应该可以看到这些 cmets。我达到了将 cmets 存储在数据库中的阶段,并且我知道它们应该在 html 中的位置,我需要以某种方式连接这两个东西。
我在服务器端使用 express 和 Node.js,在数据库端使用 postgres。
当我问这个问题时,在我看来让用户访问数据库是非常糟糕的做法。所以我认为服务器需要根据用户的请求访问数据库,修改通用 html 的 cmets 显示现在具有特定 cmets 的信息,将其保存到文件中,并将其发送到用户。为此,我正在考虑在服务器端创建一个“html 生成器函数”,它接收特定的评论信息并将其放入通用的 html 中,但这似乎不能很好地扩展,我m 担心存储中间文件效率低下。
这是正确的方法吗?你能告诉我已知的不那么hacky的方法吗?
如果你建议使用php,是不是每次我们使用php连接服务器和断开连接的问题?我希望服务器在启动时连接一次并在需要时进行所有获取,而不是每次都连接。在我看来,这将涉及更少的开销(如果我错了,请纠正我......)
-
“html 生成器”通常被称为“模板引擎”。请参阅 Express.js 文档中的 Using template engines with Express。 MDN 的Express.js tutorial 将模板以及数据库使用置于上下文中;最好也对其进行审查。
-
好吧,它应该被称为 html 生成器 >:( 不过谢谢!
-
模板生成器是常见的做法吗?你还能怎么做一个facebook或youtube?
-
是的,使用模板引擎从模板生成 HTML 非常普遍。您还可以听到术语“数据绑定引擎”,它是上面的一个步骤——它们在客户端工作,并通过动态修改 HTML 以适应用户操作,让模板实时做出反应。另一种方法是实际上有一个DSL,它描述了一个网页,然后对其进行编译;但这是少数,尽管它被一些巨人使用。我可以相当自信地说,几乎所有严肃的网站都使用模板或 Web DSL。