我应该在我的节点应用程序中通过 restful api 进行所有数据库调用吗?
Should I make all database calls through a restful api in my node app?
我正在使用 mongoose、node、express、Jade 和 bootstrap 开发一个基本的博客平台。当我最初加载 post 时,我可以直接在该端点调用我的数据库,并使用 post 内容和我的评论填充我的 Jade 视图,或者我可以从 restful api 在前端加载视图后。我仍然需要一个 api 用于 post 评论和文章,当我在不同端点的相同对象上进行大量数据库操作时,我觉得我在混淆问题。然而,如果我用 ajax 把所有东西都拉下来,我也在前端做一些粗糙的事情来创建一堆 dom 元素来构造每个评论,而不是使用更整洁和更干净的 Jade 模板。我可以使任何一种方式工作,但我正在尝试找出什么是最佳实践。
从生成服务于 Jade 视图的端点内调用 api 端点是否有意义?那是一回事吗?或者有没有一种优雅的方法可以在客户端生成一堆嵌套的 dom 元素?我试过使用一堆 document.createElement 和 appendChild 调用,这些调用有效,但看起来很荒谬,并将一串 html 标记传递给 jquery,但我的理解是 jquery 在引擎盖下使用 innerHTML 来创建不太理想的元素。
我不太确定是否有人想看代码片段或您可能需要哪些代码片段,但请告诉我,如果您愿意,我会post。
谢谢!
[为清楚起见编辑]
从性能和可伸缩性的角度来看,从客户端到服务器的次数越少越好。我总是在我的 Jade 模板中发送尽可能多的数据,并且只使用额外的 ajax 调用来扩展提供给客户端的初始视图……比如 'more comments' 之类的东西,例如当post 上的评论很丰富,或者在移动设备视图中动态滚动浏览博客 post 的页面。
此外,如果页面上的大部分数据都是用 HTTP 请求而不是 ajax 调用填充的,那么搜索引擎优化 (SEO) 会做得更好,除非您打算开始使用第 3 方或自制方法来缓存预渲染页面。
我正在使用 mongoose、node、express、Jade 和 bootstrap 开发一个基本的博客平台。当我最初加载 post 时,我可以直接在该端点调用我的数据库,并使用 post 内容和我的评论填充我的 Jade 视图,或者我可以从 restful api 在前端加载视图后。我仍然需要一个 api 用于 post 评论和文章,当我在不同端点的相同对象上进行大量数据库操作时,我觉得我在混淆问题。然而,如果我用 ajax 把所有东西都拉下来,我也在前端做一些粗糙的事情来创建一堆 dom 元素来构造每个评论,而不是使用更整洁和更干净的 Jade 模板。我可以使任何一种方式工作,但我正在尝试找出什么是最佳实践。
从生成服务于 Jade 视图的端点内调用 api 端点是否有意义?那是一回事吗?或者有没有一种优雅的方法可以在客户端生成一堆嵌套的 dom 元素?我试过使用一堆 document.createElement 和 appendChild 调用,这些调用有效,但看起来很荒谬,并将一串 html 标记传递给 jquery,但我的理解是 jquery 在引擎盖下使用 innerHTML 来创建不太理想的元素。
我不太确定是否有人想看代码片段或您可能需要哪些代码片段,但请告诉我,如果您愿意,我会post。
谢谢!
[为清楚起见编辑]
从性能和可伸缩性的角度来看,从客户端到服务器的次数越少越好。我总是在我的 Jade 模板中发送尽可能多的数据,并且只使用额外的 ajax 调用来扩展提供给客户端的初始视图……比如 'more comments' 之类的东西,例如当post 上的评论很丰富,或者在移动设备视图中动态滚动浏览博客 post 的页面。
此外,如果页面上的大部分数据都是用 HTTP 请求而不是 ajax 调用填充的,那么搜索引擎优化 (SEO) 会做得更好,除非您打算开始使用第 3 方或自制方法来缓存预渲染页面。