5

我已经看到了几个这样的问题,并阅读了我能找到的教程。不幸的是,他们都认为我对一些我实际上没有的知识有所了解,我什至不知道我不知道的关键词。

我有一个 HTML 页面,里面有一些 javascript。我可以将信息放在字符串或 javascript 对象中。现在,我如何将它发送到我的数据库?我如何指出我的数据库在哪里以及 javascript 如何授权给数据库以便它可以写入?

大多数教程只展示了 CouchDB 如何与 curl 一起工作,我还没有看到让网站与数据库交互的教程。这不就是 CouchDB 的本意吗?

4

3 回答 3

6

从 JavaScript(使用 jQuery)发送 REST 请求与使用 curl 执行的操作非常相似:

function create() {
  var o = {"name":"Bond"};
  $.ajax({
   type: "POST",
   url: "/myDB/",
   contentType: "application/json",
   data: JSON.stringify(o),
   dataType: "json",
   success: function(data) {
     alert(data.id + " created !");
   }
  });
}

但请注意:如果请求不是从与 CouchDB 相同的服务中检索到的,则出于安全原因,该请求将被阻止。因此,将您的 HTML 页面作为设计文档的附件。

稍后您将学习如何在“节目”或“列表”中使用此类脚本。但是,让我们从简单的事情开始。

于 2013-03-25T15:36:51.697 回答
5

仅仅因为我也很难找到一个明确的答案,这里是如何在 vanilla JS 中做到这一点:

const URL = "http://127.0.0.1:5984"

function createDB(dbName) {
    var req = new XMLHttpRequest();
    req.open("PUT", URL + "/" + dbName, true);
    req.setRequestHeader("Content-type", "application/json");

    req.send();
}

function updateDB(dbName, docName, data) {
    var req = new XMLHttpRequest();
    req.open("PUT", URL + '/' + dbName + '/' + docName, true);
    req.setRequestHeader("Content-type", "application/json");

    req.send(JSON.stringify(data));
}

所以你会像这样使用它们:

createDB('baseball');
updateDB('baseball', 'document', {"pitcher":"Nolan Ryan"});

注意:我不打算在这里讨论修订号和冲突解决,只是提供一些非常基本的代码。第二次尝试更新同一记录时,除非您提供正确的修订号,否则将会发生冲突,仅供参考。

updateDB('baseball', 'document', {"_rev":"1-7e007b1ef348cba88396435479822386", "pitcher":"Roger Clemens"});
于 2017-03-22T14:15:28.210 回答
3

结帐jquery.couch.jshttps ://github.com/daleharvey/jquery.couch.js-docs

文档在这里:http ://daleharvey.github.com/jquery.couch.js-docs/symbols/

于 2013-03-25T13:12:51.517 回答