occam / node.couchapp.js

Utility for writing couchapps.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Installation

Install node.

Install npm.

$ git clone repo
$ cd node.couchapp.js
$ npm link .
$ couchapp help
couchapp -- utility for creating couchapps

Usage:
  couchapp <command> app.js http://localhost:5984/dbname

Commands:
  push : Push app once to server.
  sync : Push app then watch local files for changes.

app.js example:

  var couchapp = require('couchapp')
    , path = require('path');

  ddoc = {
      _id: '_design/app'
    , views: {}
    , lists: {}
    , shows: {} 
  }

  module.exports = ddoc;

  ddoc.views.byType = {
    map: function(doc) {
      emit(doc.type, null);
    },
    reduce: '_count'
  }

  ddoc.views.peopleByName = {
    map: function(doc) {
      if(doc.type == 'person') {
        emit(doc.name, null);
      }
    }
  }

  ddoc.lists.people = function(head, req) {
    start({
      headers: {"Content-type": "text/html"}
    });
    send("<ul id='people'>\n");
    while(row = getRow()) {
      doc = row.doc;
      send("\t<li class='person name'>" + doc.name + "</li>\n");
    }
    send("</li>\n")
  }

  ddoc.shows.person = function(doc, req) {
    return {
      headers: {"Content-type": "text/html"},
      body: "<h1 id='person' class='name'>" + doc.name + "</h1>\n"
    }
  }

  couchapp.loadAttachments(ddoc, path.join(__dirname, '_attachments'));

About

Utility for writing couchapps.