CouchDB - CouchApp 的任何替代品?

goo*_*els 5 database rest couchdb nosql couchapp

所以我最近一直在阅读有关 CouchDB 的文章,我真的很喜欢它。它看起来很简单,但很灵活,我喜欢 RESTful 界面。但是让我们面对现实吧——除非您正在构建 SAP,否则您会希望您的应用程序使用 SEO 友好的 URL 来提供静态 HTML,而不是恒定的 HTTP 请求。我还没有在任何项目中实际使用过 CouchDB,但我很想在不久的将来探索它。

问题是:如何使用它来构建静态 HTML 网站,例如博客?我想将我所有的博客文章存储在 CouchDB 中,然后根据类别、标签和日期将它们作为 HTML 提供。如果我正确理解这一点,我只会在我的设计文档中定义一组表演。因此,例如,在“工作”类别中所有帖子的设计文档中,我还将为节目添加一个单独的功能模板。但是,我在将 HTML 存储在 JSON 文件中的 JavaScript 函数中时遇到了一些问题!这听起来维护起来非常痛苦。我快速浏览了 CouchApp,它似乎解决了这个问题,但它似乎并没有在积极开发中,因此我对其他可能的解决方案提出了疑问。

我希望能够像往常一样构建我的 HTML/CSS/JS,但如果可能的话,可以利用 CouchDB 的好处,而无需任何外部后端。或者甚至更好 - 我希望将我的数据库实际定义为 JSON 文件,我的地图作为常规.js文件运行,并为其他所有内容维护经典目录结构,例如:

db/data - 这包含 CouchDB

db/maps - 这包含我的地图功能

public/ - 这包含其他所有内容,包括其他 JS、CSS 和 HTML,如下所示:

public/css
public/js
public/categories.html
public/posts.html
public/index.html
Run Code Online (Sandbox Code Playgroud)

等等。

关于如何实现这一目标的任何想法?或者,如果它甚至可能?

额外的问题:有人能这么好心解释什么是reduce函数吗?它们是sumcount函数的 SQL 等价物吗?我什么时候会真正使用reduce函数?我什么时候需要写一个自定义的?

谢谢!

7ic*_*tor 4

CouchDB 是为 Web 设计的数据库,它是一个开箱即用的 RESTful API,这就是为什么 CouchApps 如此简单、开发速度快,并且不需要后端,因为 CouchDB 它实际上是您的后端。

我知道维护从 CouchDB 推送的 HTML 很困难,它也很昂贵,所以我构建 CouchApps 的方式是使用 Backbone 创建一个前端应用程序,管理我的所有路由(友好的 URL),使用模板(任何模板框架,我使用简单的 requirejs !text),并像普通 HTML/CSS/JS 一样开发应用程序,对 CouchDB 视图进行 Ajax 调用(使用列表转换数据,因此只需返回干净的 JSON),如果我想要特定文档,也可以执行相同的操作,只需使用显示并再次获得 JSON 数据。

因此,最后是作为一个 Web 应用程序与 RESTful API 通信并解释该数据以根据需要显示它。

然后,您将该应用程序推送到 CouchDB(现在它是一个 couchapp),因此 CouchDB 实际上将您的应用程序提供给最终用户,并将 API 提供给您的应用程序。

减少: 这是一个强大的算法,正如你所说的相当于SQLsumcount,你也有CouchDB减少的那些(,,_sum)。我建议您阅读此链接以了解减少和重新减少。_count_stats

http://www.ramblingincode.com/building-a-couchdb-reduce-function/