2

定义

CouchJs:CouchDB 的 JavaScript 解释器

CouchDB:一个非 SQL 数据库,您可以在其中使用诸如 JS 之类的东西在用户空间执行大多数事情,因为在数据库级别执行事情往往很昂贵

完整性:在信息安全中,完整性意味着数据不能被不可察觉地修改。更多在这里

CouchJS网站没有内部搜索,在谷歌搜索或多或少令人困惑的博客文章后,我迷路了。我在哪里可以找到一些像下面这样的简单示例(不仅仅是 curls/telnet)?

<script type="text/javascript" src="lib/jquery-1.7.2.js"></script>
<script type="text/javascript" src="lib/jquery-ui-1.8.21.custom.min.js"></script>
<script src="http://127.0.0.1:5984/_utils/script/jquery.couch.js"></script>
    //# 1. initilalize the db -object
    //# 2. save something to the db with the object
<script> db.test.save('hello world') </script>

也许对其他新手有用

  1. CouchDB 一个真实世界的例子,引用免费书籍等的线程

  2. NonSQL:在浏览器控制台中初始化 DB 对象?用户空间中的 DB 逻辑?

  3. CouchJS 的源代码在这里

  4. https://stackoverflow.com/questions/11077093/what-are-ajax-options-in-couchjs-explain-this-odd-null-error-with-couchjs

4

3 回答 3

2

建立在弗洛里安的答案之上——因为当我在这里指出一些错误时他删除了他的答案,请略读他在历史上的答案。他在此处推荐了有关文档更新处理程序的文章和此处的示例。至少有两个问题,这里的 XMLHttpRequest需要一个字符串,而不是对象——我编辑了他的答案以添加 XMLHttpRequest -manual 以进行进一步调查,但由于某种原因有人取消了编辑。因此,我正在做出自己的答案,其中包含最多的修复,但仍然会刺激我仍在尝试解决的 DOM 11。

// By this function we solve the problem with Object, 
// changing JSON -object to string. The source is:
// https://stackoverflow.com/questions/111529/create-query-parameters-in-javascript    
function EncodeQueryData(data)
{
   var ret = [];
   for (var d in data)
      ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
   return ret.join("&");
}

// We use ready CouchDB -example, source:
// http://wiki.apache.org/couchdb/HTTP_Document_API#PUT
var datas = {
  "Subject":"I like Plankton",
  "Author":"Rusty",
  "PostedDate":"2006-08-15T17:30:12-04:00",
  "Tags":["plankton", "baseball", "decisions"],
  "Body":"I decided today that I don't like baseball. I like plankton."
};

// We use the default -function, please, see the O'Reilly.
// https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest
var xhr = new XMLHttpRequest();

// This may be wrong
xhr.open( 'POST', 'test.js', true );
xhr.setRequestHeader( 'Content-Type', 'application/json' );
xhr.open( 'POST', '127.0.0.1:5984/test/559c327683fe0acb96aff72bd174c258', true);

var msg = EncodeQueryData(datas);
xhr.send(msg);

去做

  • 现在有一个错误 XMLHttpRequest “不处理嵌套对象”而是字符串,所以我们需要更复杂的命令或带有 XMLHttpRequest 的数组。我感谢 C.*rk 帮助我解决这个问题。
  • 可能与 test.js 相关,正在调查错误:"XMLHttpRequest cannot load %3127.0.0.1:5984/test/559c327683fe0acb96aff72bd174c258. Cross origin requests are only supported for HTTP. Error: NETWORK_ERR: XMLHttpRequest Exception 101"

相关谜题

  1. [已解决]使用 JSON -headers 初始化 XMLHttpRequest 时解释 DOM 11 错误
于 2012-06-18T12:34:39.443 回答
1

我刚刚浏览了 CouchJS 网站的介绍页面,我发现的第一件事是:

CouchDB 也使用普通的旧 HTTP,因此使用 JavaScript 就像在公园里散步一样,使用 XMLHttpRequest 对象。

从这里出发只是使用普通的 CouchDB HttpRestApi 来获得你想要的东西。

因此,基于此,听起来您需要一个抽象/包装 CouchDB Rest API 的 jquery 插件来编写您的 ajax 调用。

所以我用谷歌搜索jquery couch,正如你所说,有很多结果不是很明确,也没有指向任何有用的文档或插件,除了$.couch,它看起来像一个野兽,但文档很干净,看起来就像它可以做任何 Rest API 允许的事情。

于 2012-06-18T01:54:28.173 回答
1

“你通过 HTTP 请求与 CouchDB 通信。所以你所要做的就是使用 $.ajax 并发出这些请求(而不是 curl)(你可能必须在 CouchDB 设置中启用 JSONP)。” ~Felix Kling 的评论

JSONP 可以http://127.0.0.1:5984/_utils/config.html作为管理员启用。

我收集了一些参考资料,但还不能说最好的,也不能说 AJAX 是否解决了问题。无论如何,这个看起来很有用,如何使用 JavaScript/jQuery 将新数据发布到 CouchDB。我希望 Felix Kling 可以更全面地回答这个问题,但这里有一些问题需要进一步研究。

也许相关:关于 AJAX 和 JSONP

  1. CouchDB AJAX 交互

  2. 如何对 CouchDB (http://<usename>.couchone.com/) 执行 Ajax 请求

  3. 连接 AJAX、CouchDB 和 JavaScript,关于 JSONP 的一些东西 - 支持

  4. JQuery .ajax 不适用于 http://127.0.0.1:5984

  5. 如何使用 JavaScript/jQuery 将新数据发布到 CouchDB

于 2012-06-18T01:58:13.803 回答