我是 CouchDb
的新手并试图理解如何正确使用它。我来自 MongoDB
我总是会写一个 web 层并将其放在 mongo 前面,这样我就可以允许用户访问其中的数据等。事实上,这就是我为每个网站使用所有数据库的方式。曾经写过。所以,看看 Couch,我发现它的原生 API 是 HTTP,并且它内置了诸如 OAuth 支持之类的东西,以及其他向我暗示也许我不应该再让我的代码层坐在 Couch 前面的功能,而是写Views
和事情,只是把账户给我的用户?我正在考虑像我的网站的基于 HTTP 的 API,或者用户可以通过它使用我的数据的东西。不过,像这样打开沙发对我来说似乎很奇怪。在 Couch 的意义上,OAuth 是更多地用于远程访问我“正式”在我自己的网络内部编写和运行的软件,还是它的字面意思是为最终用户?
我知道有些事情可能只能通过 CouchDB 之上的代码层来完成,例如,如果您还希望在 API 请求期间发生其他与数据库无关的事情。所以沿着这些思路思考,我认为我仍然需要一个代码层,无论如何。
最佳答案
经销商的选择。
Nodejitsu 有一篇关于这类主题的精彩文章 here .
不知道您的应用程序细节我会采取广泛的方法......
后端
如果您想阻止用户看到您的数据库,请将其设置为后端。您可以通过诸如 node.js 之类的东西对所有内容进行管道传输,并仅显示用户需要查看的内容,而他们永远不会知道有关数据库的任何信息。
见 Resource View Presenter
前端
如果您不关心数据安全,您可以在 CouchDB 上托管整个应用程序;见 CouchApp .这种方法的好处是使用复制机制来控制发布您的站点/数据。这里的缺点是您几乎肯定会遇到一些技术限制,需要将 CouchDB 移到更靠近后端的位置。
混合
让应用服务器呈现接口(interface),客户端分别从数据库中提取数据。这提供了最大的灵 active ,但可能会造成伤害,因为即使设计良好,这也可能导致可支持性和可扩展性问题。
我的推荐
在后端使用 CouchDB。如果您需要移动客户端进行同步,请为此目的使用公开公开的辅助数据库,并有选择地将这些数据同步到需要去的任何地方。
关于model-view-controller - 我应该让我的 CouchDB 数据库服务器面向公众吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811820/