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

时间:2015-07-01 21:33:54

标签: javascript node.js rest dom pug

我正在开发一个基本的博客平台,包括mongoose,node,express,Jade和bootstrap。当我最初加载一个帖子时,我可以在该端点中进行数据库调用,并使用帖子内容和我的注释填充我的Jade视图,或者一旦视图加载到前端,我就可以从restful api中删除它们。我仍然需要api来发表评论和文章,当我在不同端点的相同对象上发生大量数据库操作时,我觉得我正在混淆问题。但是,如果我用ajax将所有东西都拉下来,我也会在前端做一些粗糙的东西来创建一堆dom元素来构造每个注释,而不是使用整洁和更干净的Jade模板。我可以使任何一种方式起作用,但我想弄清楚什么是最佳实践。

从生成服务于Jade视图的端点内调用api端点是否有意义?那是一件事吗?或者有一种优雅的方式在客户端上生成一堆嵌套的dom元素?我已经尝试过使用一堆document.createElement和appendChild调用,但它看起来很荒谬,并将一串html标签交给jquery,但我的理解是jquery使用innerHTML来创建小于理想。

我不太确定是否有人希望看到代码片段或您可能需要的代码片段,但请给我一个hollar,如果您愿意,我会发布它们。

谢谢!

[为清晰起见编辑]

1 个答案:

答案 0 :(得分:1)

从性能和可伸缩性的角度来看,从客户端到服务器的次数减少总是更好。我总是尽可能多地在我的Jade模板中发送数据,并且只使用额外的ajax调用来扩展提供给客户端的初始视图......例如'更多评论'例如,当帖子上的评论数量很大或动态滚动浏览移动视图中的博客页面时。

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