关于用户空间中CouchJS的简单示例,例如使用浏览器?

时间:2012-06-18 01:27:10

标签: jquery security couchdb

解释

  
    

CouchJs :CouchDB的JavaScript解释器

         

CouchDB :一个NonSQL数据库,你用JS之类的东西在用户空间中执行大多数事情,因为在数据库级别执行的事情往往很昂贵

         

完整性:在信息安全方面,完整性意味着无法无法修改数据。更多here

  

CouchJS website没有内部搜索,在谷歌搜索或多或少令人困惑的博客文章后,我迷路了。我在哪里可以找到一些简单的例子(不仅仅是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 a real world example,提及免费图书等主题

  2. NonSQL: initialization of DB -object in browser console? DB -logic in the user-space?

  3. CouchJS的源代码here

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

3 个答案:

答案 0 :(得分:2)

建立在弗洛里安的答案之上 - 因为当我指出一些错误here时,他删除了他的答案,请在历史中浏览他的答案。他提出了有关文档更新处理程序here和示例here的文章。至少有两个问题,XMLHttpRequest here接受一个字符串,而不是对象 - 我编辑了他的答案,添加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);

<强> TODO

  
      
  • 现在有一个错误XMLHttpRequest &#34;不处理嵌套对象&#34; 但是字符串所以我们需要更复杂的命令或数组   使用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. [已解决] Explain DOM 11 error in the initialization of XMLHttpRequest with JSON -headers

答案 1 :(得分:1)

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

  

CouchDB也会说普通的旧HTTP,所以开始使用JavaScript   是使用XMLHttpRequest对象在公园散步。

     

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

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

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

答案 2 :(得分:1)

  

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

可以在http://127.0.0.1:5984/_utils/config.html中以管理员身份启用JSONP。

我收集了一些参考文献,但还不能说最好的参考文献,还不能说AJAX -thing是否能解决问题。无论如何,这个看起来很有用,How do I POST new data to CouchDB using JavaScript/jQuery。我希望Felix Kling能够更充分地回答这个问题,但这里有一些问题需要进一步研究。

  

或许相关:关于AJAX和JSONP的内容

     
      
  1. CouchDB AJAX interaction

  2.   
  3. How do I perform an Ajax request to CouchDB (http://<usename>.couchone.com/)

  4.   
  5. Connection AJAX, CouchDB and JavaScript,关于JSONP -support

  6.   
  7. JQuery .ajax dosen't work with http://127.0.0.1:5984

  8.   
  9. How do I POST new data to CouchDB using JavaScript/jQuery

  10.