5

私はそのような質問をいくつか見て、見つけたチュートリアルを読みました。残念ながら、彼らは皆、私が実際には持っていない何かについてある程度の知識を持っていて、私が知らないもののキーワードさえ知らないと思っています。

JavaScriptが含まれているHTMLページがあります。情報を文字列またはjavascriptオブジェクトに入れることができます。では、どうすればDBにアクセスできますか?DBがどこにあるかをどのように指摘し、JavaScriptがデータベースに書き込みを許可する方法を教えてください。

ほとんどのチュートリアルは、CouchDBがcurlでどのように機能するかを示しているだけであり、Webサイトをデータベースと相互作用させるためのチュートリアルは見たことがありません。それが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

これについても明確な答えを見つけるのに非常に苦労したという理由だけで、バニラ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"});

注:ここでは、リビジョン番号や競合の解決については説明しません。本当に基本的なコードを提供するだけです。同じレコードを2回更新しようとすると、正しいリビジョン番号FYIを指定しないと、競合が発生します。

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 に答える