You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2008/11/02 00:47:24 UTC

[Couchdb Wiki] Update of "Getting started with JavaScript" by MartinCzura

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The following page has been changed by MartinCzura:
http://wiki.apache.org/couchdb/Getting_started_with_JavaScript

The comment on the change is:
page creation

New page:
Getting started with !JavaScript and the CouchDB API.

== Simple Wrapper ==

There is a simple !JavaScript wrapper around CouchDB included in the distribution. When you install the server it is installed as http://localhost:5984/_utils/script/couch.js. You can see examples of its use in ''couch_tests.js'':

{{{
 var nc = {_id:"NC", cities:["Charlotte", "Raleigh"]};
 var ma = {_id:"MA", cities:["Boston", "Lowell", "Worcester", "Cambridge", "Springfield"]};
 var fl = {_id:"FL", cities:["Miami", "Tampa", "Orlando", "Springfield"]};

 db.save(nc);
 db.save(ma);
 db.save(fl);

 ...

 var nc_cities = db.open('NC').cities;
}}}

Obviously the ''couch.js'' API is by no means final since CouchDB itself is still in flux.

== Rolling Your Own ==

CouchDB speaks JSON. JSON means !JavaScript Object Notation. CouchDB also speaks Plain Old HTTP, so getting going with !JavaScript is a walk in the park with the XML!HttpRequest object:

{{{
// instantiate a new XMLHttpRequest object
var req = new XMLHttpRequest()
// Open a GET request to "/all_dbs"
req.open("GET", "/_all_dbs")
// Send nothing as the request body
req.send("")
// Get the response
req.responseText
["some_database", "another_database"]
}}}

Going from here is just a matter using the normal CouchDB HttpRestApi to get what you want.

There is numerous javascript libraries out there that wraps up both XML!HttpRequest and JSON in possibly nicer APIs, including:

  * [http://www.prototypejs.org/ Prototype]
  * [http://jquery.com/ JQuery]
  * [http://dojotoolkit.org/ Dojo]
  * [http://moofx.mad4milk.net/ Moo]