CouchApp IV: creando funciones show con templates HTML
necesitamos mostrar una entidad en su propia pagina, para eso vamos a necesitar un template html con los valores del documento almacenado en la base de datos, un template es una buena herramienta para eso, veamos como hacerlo en nuestra couchapp
primero creamos la funcion show, esta funcion es llamada para mostrar un documento en algun formato, en nuestro caso html
# generamos la funcion show
couchapp generate show dato
# la editamos con un editor de texto
vim shows/dato.js
en un principio vamos a ver este contenido
function(doc, req) {
}
reemplazamos por algo parecido a esto
function(doc, req) {
if (doc !== null && doc.name) {
var ddoc = this,
Mustache = require("vendor/couchapp/lib/mustache"),
path = require("vendor/couchapp/lib/path").init(req),
assetPath = path.asset();
provides("html", function() {
return Mustache.to_html(ddoc.templates.dato, {
assetPath: assetPath,
doc: doc
});
});
}
else {
return "not found";
}
}
en el codigo controlamos que tenemos un documento, sino mostramos "not found",
tambien creamos algunos objetos que nos ayudan y finalmente renderizamos el template pasandole algunos valores que seran usados dentro del template.
mi template esta en templates/dato.html (por eso ddoc.templates.dato) y contiene un template mustache, mira la documentacion de mustache para mas informacion sobre el formato
la url par acceder a esta funcion es [database]/_design/[app]/_show/[showname]/[docid] un ejemplo podria ser http://localhost:5984/datos/_design/datos/_show/dato/6bd97648d74961996c8f0d42b2005761