我应该通过节点应用程序中的restful api进行所有数据库调用吗

Should I make all database calls through a restful api in my node app?

本文关键字:数据库 调用 api restful 节点 应用程序 我应该      更新时间:2023-09-26

我正在开发一个包含mongose、node、express、Jade和bootstrap的基本博客平台。当我最初加载帖子时,我可以在该端点进行数据库调用,并用帖子内容和评论填充我的Jade视图,或者在前端加载视图后,我可以从restful api中删除这些内容。我仍然需要一个用于发布评论和文章的api,当我在不同的端点对相同的对象进行一系列数据库操作时,我觉得我在混合各种担忧。然而,如果我用ajax完成所有工作,我也会在前端做一些棘手的事情,创建一堆dom元素来构建每个评论,而不是使用更整洁的Jade模板。无论哪种方式我都可以,但我正在努力找出什么是最佳实践。

从生成服务于Jade视图的端点中调用api端点有意义吗?这是一件事吗?或者有没有一种优雅的方法可以在客户端上生成一堆嵌套的dom元素?我尝试过使用一堆document.createElement和appendChild调用,这很有效,但看起来很荒谬,并将一系列html标记交给jquery,但我的理解是,jquery在后台使用innerHTML来创建元素,这并不理想。

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

谢谢!

[为清晰起见进行编辑]

从性能和可扩展性的角度来看,从客户端到服务器的访问次数越少越好。我总是在我的Jade模板中发送尽可能多的数据,并且只使用额外的ajax调用来扩展提供给客户端的初始视图。。。比如"更多评论",比如当一篇文章的评论数量很大时,或者在移动视图中动态滚动博客文章的页面。

此外,如果页面上的大部分数据都是用HTTP请求而不是ajax调用填充的,那么搜索引擎优化(SEO(会做得更好,除非你打算使用第三方或自行开发的方法来缓存预渲染的页面。