直接从NodeJS / Angular应用程序发送请求到couchDB?

我目前正在构build一个新的Web应用程序,包括用户注册,个人档案,图片上传等等。 我以前的项目使用MEAN堆栈(MongoDB,ExpressJS,Angular,NodeJS),现在想试用一下couchDB。

couchDB免费提供了一个REST-API。 我可以将所有的逻辑转移到客户端,并确保input通过couchDBsvalidationfunction是有效的。 因此,我可以将客户端的请求直接发送到数据库,而且我不必在我的expressJS控制器中编写像CRUD Operations这样烦人的事情。 validation,validation和简单的CRUD操作 – 这一切都是免费的。

有没有理由不这样做? 然后,我会将请求传递给我的服务器,然后将它传递到couchDB,这几乎可以根除mongoDB的所有好处。

问候,米歇尔

我认为你的build议至less在理论上是正确的,你可能想继续做,也许可以用浏览器将请求从nginx或node-http-proxy转发到couchdb。 我相信有市场上的产品支持这种“无应用服务器”架构,如parse.com ,这提供了一些社会certificate,这个想法至less有趣和值得探讨。

不过,我认为在某种程度上你会发现应用程序服务器是这样的,人们使用它们并为它们编写代码几乎在每个应用程序中都有很好的理由。 用你的couchdb数据validation代码debugging问题可能会很麻烦。 将这个function与使用node-inspector和chrome开发人员工具debugging程序debuggingnode.js代码的function相比较。

couchdb也可能不会提供真实的粒度足够的授权function。 这意味着您的应用程序最终会暴露给恶意用户,只需使用正确的文档ID进行PUT操作,并访问他们未经授权查看或更改的数据。

很less的应用程序很简单,UI + DB可以处理所有需要的数据转换和操作。 在理论上,你可以在浏览器中编写一些这样的逻辑,但是在你的复合查询逻辑和数据库之间build立互联网会给你的应用增加很多的延迟,使得某些function变得不可能,特别是如果你必须做一个查询,得到一些结果,然后根据每个结果进行辅助查询。 在服务器端应用程序和它的couchdb之间有时是可行的,但是在互联网上这样做会受到延迟的影响。