Je continue ma découverte de CouchDB avec Couchapp, logiciel qui se définit comme un ensemble d'outils pour simplifier le développement d'une application avec CouchDB.

Ce billet chercher à compléter / mettre à jour le billet de Benoit Chesneau : "Et les légos s'emboitèrent" que je vous conseille de lire par ailleurs.

Installation de Couchapp

 bash
tetram:CouchDB nicolas$ sudo easy_install couchapp

Cela vous installe couchapp 0.3.2 à ce jour.

Génération du squelette de votre application

 bash
tetram:CouchDB nicolas$ couchapp generate mycouchapp
[INFO] Generating a new CouchApp in /Users/nicolas/Documents/Projets/CouchDB/mycouchapp

Le contenu est le suivant :

 bash
tetram:CouchDB nicolas$ ls mycouchapp/
_attachments	lists		vendor
lib		shows		views

Pour pousser votre application dans votre instance CouchDB dans une base "monapp" :

 bash
tetram:CouchDB nicolas$ cd mycouchapp/
tetram:mycouchapp nicolas$ couchapp push monapp -v
[INFO] push vendor/couchapp/_attachments/jquery.couchapp.js
[INFO] push vendor/couchapp/couchapp.js
[INFO] push vendor/couchapp/date.js
[INFO] push vendor/couchapp/path.js
[INFO] push vendor/couchapp/README.md
[INFO] push vendor/couchapp/template.js
[INFO] Pushing CouchApp in /Users/nicolas/Documents/Projets/CouchDB/mycouchapp to design doc:
http://127.0.0.1:5984/monapp/_design/mycouchapp
[INFO] Visit your CouchApp here:
http://127.0.0.1:5984/monapp/_design/mycouchapp/index.html
[INFO] Attaching index.html (413)
[INFO] Attaching style/main.css (21)
[INFO] Attaching vendor/couchapp/jquery.couchapp.js (6984)

Si vous ouvrez votre navigateur sur http://127.0.0.1:5984/monapp/_design/mycouchapp/index.html, vous voyez l'écran suivant :

Couchapp-1.png

A ce stade, 2 commandes ont été utilisées :

  • generate : crée le squelette d'application
  • push : envoie l'application dans couchdb

Si vous voulez récupérer une application de couchdb, il faut utiliser la commande "clone". Cela permet d'éditer votre application couchdb depuis votre disque dur et non plus depuis futon par ex. Au passage, vous ne pouvez pas cloner votre application dans le même répertoire que l'initial :

 bash
tetram:mycouchapp nicolas$ cd ..
tetram:CouchDB nicolas$ couchapp clone http://127.0.0.1:5984/monapp/_design/mycouchapp
[CRITICAL] an app already exist here: mycouchapp

Il vous faut donc spécifier un chemin différent :

 bash
tetram:CouchDB nicolas$ couchapp clone http://127.0.0.1:5984/monapp/_design/mycouchapp mycouchapp-cloned
[INFO] Cloning mycouchapp to mycouchapp-cloned...
tetram:CouchDB nicolas$ ls mycouchapp-cloned/
_attachments	lib		shows		views
couchapp.json	lists		vendor

A noter que la version clonée a un fichier couchapp.json en plus et donc je ne connais pas encore l'intérêt / l'utilité à ce stade.

Si on revient un instant sur ces répertoires :

  • _attachments contiendra les fichiers attachés à votre application
  • views contient les vues
  • lists contient les listes de vues ; utilisées par ex pour une page listant les 10 derniers documents par ex style page d'accueil d'un blog.
  • shows contient les rendus d'un document ; la visualisation d'un article d'un blog par ex.
  • lib contient les modèles et macros
  • vendor contient des composants tiers fournis par couchapp pour le moment mais on peut imaginer je suppose d'autres briques tierces dans cet espace .

Voilà pour un début, dès que je suis plus clair sur les listes / vues / rendus, vous aurez droit à un autre billet :-)