Hi,
First to introduce myself : New to CouchDB universe, I read the WIP CouchDB
Book, some official documentation and some writings from "benoitc". So now I
try to build my first couchdb app with a simple clone of delicious.
So in a first part, I installed couchapp 0.3.2 and generate a first project
(called "mycouchapp") and then pushed it on my local couchdb server (using
CouchDBX) in a db called "monapp".
At this stage, I got the default placeholder from Couchapp.
Then from Futon, I added 3 documents like this one :
{
"_id": "3b0ce9b06a0f7a110dbd8a72b32f2072",
"_rev": "3-1834349775",
"title": "CouchDB Official site",
"url": "http://couchdb.apache.org/",
"description": "Apache CouchDB is a distributed, fault-tolerant and
schema-free document-oriented database accessible via a RESTful
HTTP/JSON API",
"tag": [
"couchdb",
"database",
"document"
]
}
{
"_id": "63f417d3d2217e4be4d284a30056c84d",
"_rev": "2-1087649587",
"title": "Couchdbkit",
"description": "Couchdbkit goal is to provide a framework for your
Python application to access and manage Couchdb.",
"url": "http://www.couchdbkit.org/",
"tag": [
"couchdb",
"python",
"framework"
]
}
{
"_id": "8fa1e44814d3d1800069127da12e72f9",
"_rev": "2-3730993466",
"title": "couchapp",
"description": "Utilities to make standalone CouchDB application
development simple",
"url": "http://github.com/couchapp/couchapp/tree/master",
"tag": [
"couchdb",
"python",
"ruby"
]
}
I know I should have used better _id but it's my first try and realised it
too late ;-)
I played a little bit with Futon to design some temporary view to try
requests against my documents. All went well.
This done, I would like to create my first lists / shows / views but failed
so far :-(
I tried to build them by looking mainly at sofa code but I always have 404
page with not a lot of info for going further.
I did not forget to push code with couchapp to update my couchdb instance.
My aim was to create two "pages" :
* One list to display all documents
* One show to display a given document
For the list :
* I should have a index.js file in lists directory for the list with a
function like :
function(head, row, req, info) {
// !json templates.index
// !code vendor/couchapp/path.js
// !code vendor/couchapp/date.js
// !code vendor/couchapp/template.js
return respondWith(req, {
html : function() {
if (head) {
return template(templates.index.head, {
assets : assetPath(),
});
} else if (row) {
var fav = row.value;
return template(templates.index.row, {
title : fav.title,
description : fav.description,
url : fav.url
});
} else {
return template(templates.index.tail, {
assets : assetPath(),
});
}
},
})
};
This mean that I have a templates/index/{head|row|tail}.html files. I just
adapted the one of sofa with removing "useless" code in my case
If I understand well, that's all I need with an url like :
http://localhost:5984/monapp/_list/mycouchapp/index/
For displaying a bookmark (fav) :
function(doc, req) {
// !json templates.fav
// !code vendor/couchapp/template.js
// !code vendor/couchapp/path.js
// we only show html
return template(templates.fav, {
title : doc.title,
url : doc.url
description : doc.description,
assets : assetPath(),
});
}
with a fav.html file in /templates/
Url is something like : http://localhost:5984/monapp/_show/mycouchapp/fav/
<_id>
What annoys me is the 404 status for all pages and that from the html
template point of views, I do not see JS that will "talk" to CouchDB
server/instance. There is something "magical" I can't get so far.
As I did not find so far examples from ground/scratch for building lists /
shows, I ask for some help.
Thanks in advance,
Nicolas
PS : On #couchdb, #couchapp, you can find me with the login NiCoS`
PS2 : do not know it it's more a couchapp or couchdb issue - think
it's more couchdb one...
--
Nicolas Steinmetz
http://www.steinmetz.fr - http://nicolas.steinmetz.fr/