javascript - 我应该通过 Node 应用程序中的 Restful api 进行所有数据库调用吗?

标签 javascript node.js rest dom pug

我正在使用 mongoose、node、express、Jade 和 bootstrap 开发一个基本的博客平台。当我最初加载帖子时,我可以在该端点中进行数据库调用,并使用帖子内容和我的评论填充我的 Jade View ,或者一旦 View 加载到前端,我就可以从 Restful api 中将它们拉下来。我仍然需要一个 api 来发布评论和文章,并且当我在不同端点的相同对象上进行大量数据库操作时,我觉得我正在混合关注。然而,如果我用 ajax 将所有内容都拉下来,我也会在前端做一些粗糙的事情来创建一堆 dom 元素来构造每个评论,而不是使用更整洁的 Jade 模板。我可以采用任何一种方法,但我正在尝试找出最佳实践。

从生成服务于 Jade View 的端点中调用 api 端点是否有意义?这是一件事吗?或者有没有一种优雅的方式在客户端生成一堆嵌套的 dom 元素?我尝试过使用一堆 document.createElement 和appendChild调用,这可以工作,但看起来很荒谬,并将一串html标签传递给jquery,但我的理解是jquery在引擎盖下使用innerHTML来创建小于的元素理想的。

我不太确定是否有人想查看代码片段或您可能需要哪些代码片段,但请给我一个鼓励,如果您愿意,我会发布它们。

谢谢!

[为清楚起见进行编辑]

最佳答案

从性能和可扩展性的 Angular 来看,客户端到服务器的次数越少越好。我总是在 Jade 模板中发送尽可能多的数据,并且只使用额外的 ajax 调用来扩展提供给客户端的初始 View ...诸如“更多评论”之类的事情,例如当帖子上的评论数量为在移动 View 中大量或动态地滚动浏览博客文章页面。

此外,如果页面上的大部分数据是用 HTTP 请求而不是 ajax 调用填充的,那么您将在搜索引擎优化 (SEO) 方面做得更好,除非您打算使用第 3 方或 home spin 方法来缓存预渲染的页面。

关于javascript - 我应该通过 Node 应用程序中的 Restful api 进行所有数据库调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172095/

相关文章:

javascript - 如何使用javascript中的浏览按钮读取所选文件的内容

javascript - 访问 ko.compulated 内部的本地函数

macos - 在 mac os x 上使用 boot2docker 运行 docker?

node.js - Node GeoFire 内存泄漏?

rest - 带有 REST API 空回复的 OTRS Webservice curl

javascript - 使用正则表达式获取不在特定html标签中的字符串

java - a4j :commandbutton not allowing "<" in rendered

Node.js - 生成多部分/表单数据

c# - 异常:从 RESTFUL 服务调用 Bing 翻译服务时找不到默认端点元素

java - @NotNull 注释没有按预期工作 Java Jersey