4

我有一个用 HTML 和 JavaScript 构建的网站,由 Tomcat 提供服务。

我需要向它添加一个无 SQL 数据库,并且我正在尝试 Couch DB。我遇到了麻烦,因为我了解数据库的工作原理,但我不知道如何将它与我的网站连接起来。

我习惯了 SQL,我只需要建立一个连接,然后发送 SQL 查询。如何实例化到 CouchDB 的连接对象,并使用 couchdb.js?目前,Tomcat 回答了一个跨域问题,因为 Tomcat 和 couchdb 在不同的端口上。

任何人都可以帮助我了解基础知识吗?

4

2 回答 2

0

跨域资源共享 (CORS)仅在 CouchDB 的下一个版本 (v.1.3) 中实现。

这可能令人惊讶,但应该意识到这不是 CouchDB 的“非常基础”:

  1. 大多数 CouchApp Web 应用程序开发人员从 CouchDB 本身为他们的 Ajax 应用程序提供服务(使用 HTML 显示、列表和附加的静态页面)。
  2. 一些开发人员将 CouchDB 用作 3 层架构中的简单数据库。
  3. 其他人则从桌面或签名应用程序(Java、Flash 等)向 CouchDB 发送请求。

因此,通过从外部站点检索到的代码发送 Ajax 查询是比较少见的。

我推荐的建议是采用最常见的设置之一。

如果它绝对不适合您的情况,那么您可以测试 CouchDB 的开发版本,或者使用代理,使 CouchDB 看起来与您的 HTML 代码位于同一服务器上(直到下一个版本)。

于 2013-02-19T10:40:40.610 回答
0

首先,您需要熟悉 curl,然后您开始通过命令行测试您的 couchdb。尝试在安装了 couchdb 的同一台机器上。

$ curl localhost:5984

之后,尝试使用 curl 从不同的机器访问:

$ curl http://<your_couchdb_server_name_or_ip>:5984/

如果不能,您需要检查您的服务器是否有防火墙阻止外部请求到您的服务器的 5984 端口。

现在,要从 ajax 请求访问您的 couchdb,您必须配置 local.ini 文件:

[httpd]
enable_cors:true;

[cors]
credentials:true;
mehods:PUT,GET,POST,DELETE,OPTIONS;
origins:*;

重新启动您的 couchdb 并重试,这必须解决您的问题。

于 2013-09-02T12:53:17.923 回答