CouchDB - 跨视图,跨设计文档,跨数据库共享功能

时间:2011-11-28 18:32:26

标签: couchdb extensibility spidermonkey

好的,这就是事情。

我有一个很好的JS背景,过去有我的JS分享,并且我从项目到项目中拥有很多很酷的裸机工具,就像一个库。

我正在尝试用CouchDB制定工作。 现在,在习惯了为您编写并为您简化语言的奢侈工具之后 - 我发现以简单的方式编写许多内容有点令人沮丧。

我正在寻找一种可以加载到数据库上下文的方法,这是一种有限的,高效的和通用的工具集,专注于纯语言,并使语言的工作更加时髦(和天哪,不,我不是在谈论jquery或任何更丰满的图书馆。

如果最重要的是,我可以找到一种方法,我可以添加一些自己的逻辑工具(BL模型函数)来添加couchDB JS引擎的执行上下文 - 它会提供一个伟大而令人钦佩的力量和制作couchDB是像我这样的JavaScript的新家。

也许我的目标太低了。 我对一种方法感到满意,即使是针对特定的数据库,我也可以分配一组扩展,我不介意为每个数据库单独进行。或者更糟糕 - 将其添加到每个设计文档中,因此我可以在同一个设计文档中教授几个视图 - Person是什么,Worker是什么,并使用他们的方法来检索数据根据逻辑以可重复使用的编码方式从他们那里获得。

有人能指出我的方式吗?

无论你怎样指出我 - 我都非常感激感激。 如果有办法解决所有这些问题 - 那就太好了。 相信我知道什么逻辑属于什么层......

你打开我的可能性 - 我保证会使用它们:D

2 个答案:

答案 0 :(得分:3)

CouchDB现在支持代码共享为CommonJS模块。

http://docs.couchbase.org/couchdb-release-1.1/index.html#couchdb-release-1.1-commonjs

http://caolanmcmahon.com/posts/commonjs_modules_in_couchdb

通过这种方式,您可以在同一设计文档中的视图,列表和节目之间共享您的javascript模块。 (服务器端)

此外,您可以使用此库在浏览器端加载这些模块: https://github.com/couchapp/couchapp/blob/master/couchapp/templates/vendor/couchapp/_attachments/jquery.couch.app.js

您也可以查看Kanso:

http://kansojs.org/

它使您的javascript在服务器和客户端之间无缝地工作非常出色。

答案 1 :(得分:0)

您可以在此处找到一些有用的工具:https://github.com/vivekpathak/casters

正在运行的示例和测试用例可能对您有所帮助。