2

定義

CouchJs : CouchDB の JavaScript インタープリター

CouchDB : データベースレベルで実行するとコストがかかる傾向があるため、JS などを使用してユーザー空間でほとんどのことを実行する NonSQL データベース

整合性: 情報セキュリティにおける整合性とは、データが検出されずに変更されないことを意味します。詳細はこちら

CouchJS Web サイトには内部検索機能がなく、多かれ少なかれ紛らわしいブログ記事をグーグルで検索した後、私は道に迷いました。以下のような単純な例 (curl/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

フロリアンの回答に基づいて作成します-ここでいくつかのエラーを指摘したときに彼が回答を削除したため、履歴で彼の回答をざっと読んでください。彼はドキュメント更新ハンドラーに関する記事をここに、例をここに提案しました。少なくとも 2 つの問題があります。ここでの XMLHttpRequestは、オブジェクトではなく文字列を取ります。詳細な調査のために、彼の回答を編集して XMLHttpRequest マニュアルを追加しましたが、何らかの理由で誰かが編集をキャンセルしました。だから私は自分自身の答えを作っていますが、私はまだ解決しようとしている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 は「ネストされたオブジェクトを処理しません」というエラーが 1 つありますが、文字列であるため、より複雑なコマンドまたは 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 ヘッダーを使用した XMLHttpRequest の初期化での DOM 11 エラーの説明
于 2012-06-18T12:34:39.443 に答える
1

CouchJS サイトの紹介ページをざっと見てみたところ、最初に見つけたのは次のようなものでした。

CouchDB は Plain Old HTTP にも対応しているため、JavaScript を使いこなすには、XMLHttpRequest オブジェクトを簡単に使用できます。

ここから先は、通常の CouchDB HttpRestApi を使用して必要なものを取得するだけです。

これに基づいて、CouchDB Rest API を抽象化/ラップして ajax 呼び出しを作成する jquery プラグインが必要なようです。

だから私はググってjquery couch、あなたが言ったように、かなりの数の結果がありましたが$.couch、それは獣のように見えますが、ドキュメントはきれいで、見た目はきれいですRest API が許可するほぼすべてのことを実行できます。

于 2012-06-18T01:54:28.173 に答える
1

「HTTP リクエストを介して CouchDB と通信します。そのため、(curl の代わりに) $.ajax を使用してこれらのリクエストを行うだけです (CouchDB 設定で JSONP を有効にする必要がある場合があります)。」〜フェリックス・クリングのコメント

http://127.0.0.1:5984/_utils/config.htmlJSONP は管理者として有効にすることができます。

私はいくつかの参考文献を集めましたが、まだ最良のものを言うことはできず、AJAX が問題を解決するかどうかはまだ言えません。とにかく、これは役に立ちそうです。 JavaScript/jQuery を使用して CouchDB に新しいデータを POST するにはどうすればよいですか。フェリックス・クリングがこれについてもっと完全に答えてくれることを願っていますが、ここではさらなる研究のための問題がいくつかあります。

おそらく関連: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 に新しいデータを POST する方法

于 2012-06-18T01:58:13.803 に答える