Couchdb非常擅长存储和提供数据,但是我很难掌握如何使用它进行后端处理。例如,GWT具有对同步和异步回调的开箱即用支持,允许您在服务器上运行任意Java代码。有没有办法用couchdb做这样的事情?
例如,当用户点击Web应用程序按钮时,我想生成并提供PDF文件。理想情况下,工作流程看起来像这样:
有没有办法在开箱即用的couchdb中执行此操作,或者是在Web客户端和后端数据处理代码之间进行通信所需的其他第三方软件?
编辑:看起来我在解释我的问题方面做得很差。我感兴趣的主要是从Couchdb提供servlet,就像你可以从war文件中的side web页面提供Java servlet一样。我使用GWT作为示例,因为它支持将servlet和客户端代码一起开发并将所有内容编译成单个war文件。我对这样的事情非常感兴趣,因为它可以通过Couchdb复制轻松部署功能齐全的网站。但从它的外观来看,我的问题的答案是否定的,你不能从couchdb提供servlet。数据库是为CRUD样式交互设置的,任何servlet样式组件都需要单独提供,或者通过轮询数据库中的更改并相应地执行来完成。
答案 0 :(得分:3)
以下是我建议的一般工作流程:
当然魔鬼在细节......
您的后台进程可以通过两种方式识别待处理文档:
{"being-processed":true}
等属性更新沙发文档,并将其过滤掉视图。其他一些想法:
答案 1 :(得分:1)
GWT有两个部分。一个是GWT编译器转换为Java的客户端,另一个是执行任何RPC的Servlet。通常,您将在浏览器上运行客户端代码,然后在进行任何RPC调用时,您将联系Java Servlet引擎(例如Tomcat或Jetty或......),后者又会调用您的持久层。
GWT确实能够通过HTTP执行JSON请求,巧合的是,这就是CouchDB使用的。所以在理论上它应该是可能的。 (我不知道是否有人尝试过)。会有几个问题 CouchDB需要提供具有已编译的GWT客户端代码的.js文件 我在你的案例中看到的主要问题是couchDB需要生成你的PDF文件,而couchDB只是一个存储引擎,通常不会进行任何处理。如果你对Erlang编程语言有任何好处,我想你可以扩展它。