【问题标题】:Starting a couchdb DB in a HTML + Javascript web在 HTML + Javascript Web 中启动一个 couchdb 数据库
【发布时间】:2013-09-02 20:53:17
【问题描述】:

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

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

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

任何人都可以帮助我了解最基本的内容吗?

【问题讨论】:

  • CouchDB 公开了一个 REST API 来操作数据。所以你所要做的就是发出 HTTP 请求,这通常是通过 JS 中的 Ajax 来完成的。
  • 我知道,我正在尝试使用 couch.js,它似乎具有我需要添加或从我的 bd 查询信息的所有功能。问题是tomcat用跨域问题回答我,因为Tomcat和couchdb在不同的端口......有什么帮助吗???并感谢您的兴趣:)
  • 可以在couchdb设置中开启跨域访问。stackoverflow.com/a/4090543/218196
  • 你确定这是发送跨域问题的Tomcat吗?!?不是你的浏览器吗?

标签: javascript jquery couchdb


【解决方案1】:

跨源资源共享 (CORS) will be implemented 仅在 CouchDB 的下一版本 (v.1.3) 中。

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

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

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

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

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

【讨论】:

    【解决方案2】:

    首先,你需要熟悉 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再试一次,这一定能解决你的问题。

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多