我有一个用HTML和JavaScript构建的网站,由Tomcat提供服务。
我需要向其添加一个无SQL数据库,并且正在尝试使用Couch DB。我遇到了麻烦,因为我了解数据库的工作原理,但我不知道如何将其与我的网站连接起来。
我习惯了SQL,我只需要建立连接,然后发送SQL查询。如何将连接对象实例化到 CouchDB,并使用 couchdb.js?目前,Tomcat回答我一个跨域问题,因为Tomcat和couchdb在不同的端口上。
有人可以帮助我解决最基本的问题吗?
跨源资源共享 (CORS) 将仅在下一版本的 CouchDB (v.1.3) 中实现。
这可能令人惊讶,但人们应该意识到它不是CouchDB的"非常基础":
- 大多数 CouchApp Web 应用程序开发人员从 CouchDB 本身提供他们的 Ajax 应用程序(使用 HTML 显示、列表和附加的静态页面)。
- 一些开发人员使用 CouchDB 作为 3 层架构中的简单数据库。
- 其他人从桌面或签名应用程序(Java,Flash等)向CouchDB发送请求。
因此,从从外部站点检索的代码发送 Ajax 查询的情况相对较少。
我推荐的建议是采用最常见的设置之一。
如果它绝对不适合您的情况,那么您可以测试 CouchDB 的开发版本,或使用代理,以便 CouchDB 看起来与您的 HTML 代码位于同一服务器上(直到下一个版本)。
首先,你需要熟悉 curl,然后开始通过命令行测试 couchdb。在安装 couchdb 的同一台计算机上尝试。
$ curl localhost:5984
之后,尝试使用 curl 从另一台机器访问:
$ curl http://<your_couchdb_server_name_or_ip>:5984/
如果不能,则需要检查服务器是否有防火墙阻止对 5984 端口上的服务器的外部请求。
现在,要从 ajax 请求访问 couchdb,您必须配置本地.ini文件:
[httpd]
enable_cors:true;
[cors]
credentials:true;
mehods:PUT,GET,POST,DELETE,OPTIONS;
origins:*;
重新启动您的 couchdb 并重试,这必须解决您的问题。