我设置了一个 node.couchapp.js CouchApp 并将其推送到我的 CouchDB。默认包含 Sammy 和 jQuery。现在,我想为模板添加 Mustache,但不知道在哪里?我可以将它用作 Node.js 模块或 jQuery 插件。
我从一些示例代码开始,只是想看看它是否有效,但它没有:
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 }); }) }"
};
结果是:
{"error":"invalid_require_path","reason":"Object has no property \"modules\". ...
项目结构为:
. Project
| - app.js
| - attachments
| - - scripts
| ` - index.html
| - modules
| | mustache
| - ` - mustache.js
` - templates
更新 我稍微修改了代码并排除了模板文件夹作为可能的原因。此片段来自 SO 上的一个已解决问题,因此它应该确实有效。但它仍然是同样的错误。我使用 npm install mustache 安装了 mustache.js 并将文件夹从 node_modules 重命名为 modules (也不适用于 node_modules)。
"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);});}"
但它仍然是同样的错误。