J'ai mis en place une CouchApp node.couchapp.js et l'ai poussée vers mon CouchDB. Sammy et jQuery sont inclus par défaut. Maintenant, j'aimerais ajouter Mustache pour les modèles, mais je ne sais pas exactement où ? Je pourrais l'utiliser comme module Node.js ou comme plugin jQuery.
J'ai commencé par un exemple de code, juste pour voir si cela fonctionnait, mais ce n'est pas le cas :
ddoc.lists = {
"basic": "function (head, req) { var that = this; provides('html', function () { var to_html = require('modules/mustache').to_html; var members = []; var row; while (row = getRow()) { members.push({club: row.key[0], name: row.key[1]}); } return to_html(that.templates['roster.mustache'], { members: members }); }) }"
};
Résultats dans :
{"error":"invalid_require_path","reason":"Object has no property \"modules\". ...
La structure du projet est :
. Project
| - app.js
| - attachments
| - - scripts
| ` - index.html
| - modules
| | mustache
| - ` - mustache.js
` - templates
Mise à jour J'ai modifié un peu le code et exclu le dossier des modèles comme cause possible. Cet extrait provient d'une question résolue ici sur SO, il devrait donc fonctionner. Mais c'est toujours la même erreur. J'ai installé mustache.js avec npm install mustache et renommé le dossier de node_modules en modules (cela n'a pas fonctionné avec node_modules non plus).
"basic": "function (head, req) { provides('html', function () { var template = '{{%IMPLICIT-ITERATOR}}{{name}}: <ul> {{#items}}<li>{{.}}</li>{{/items}} </ul>'; var mustache = require('./modules/mustache/mustache.js'); return mustache.to_html(template,view);});}"
Mais c'est toujours la même erreur.