首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CouchDB中使用html模板

如何在CouchDB中使用html模板
EN

Stack Overflow用户
提问于 2012-04-06 13:43:45
回答 2查看 1.9K关注 0票数 4

我到处找都想弄清楚这件事。我正在尝试从couchdb show和list函数生成html页面。我想利用underscore.js的模板解决方案。我遇到的问题是如何在我的show和list函数中包含html模板。

我将它们存储在哪里?作为附件?然后如何在show和list函数中引用它们。我假设!json和!code宏没有被使用,并且我不知道如何使用公共js中的require()来做这件事。

任何帮助都会很棒!

谢谢!

额外信息:我使用Kanso来推送我的应用程序,而不是CouchApp。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-06 15:47:53

我不熟悉Kanso,但是在CouchDB 1.1之前,CouchDB中的视图/显示等函数不能包含任何东西。( CouchApp工具有自己的!include解决方案来解决这个问题。)这些都不再是必要的。CouchDB 1.1增加了对CommonJS的支持。

所有模板和库必须是设计文档的一部分。您可以通过引用this.some_key来访问原始值(以字符串的形式);或者通过执行require("some_key")来通过CommonJS加载它们。

例如:

代码语言:javascript
复制
exports.example_view = {
    map: function (doc) {
        // this must be placed *inside* the map function
        var example = require('views/lib/example');
        if (doc.num) {
            emit(doc._id, example.fn());
        }
    }
};

(Sharing code between views)

要在服务器端呈现模板,您需要将它们编码为字符串,并像需要其他JavaScript库一样需要它们。(对于浏览器端呈现,可以通过AJAX works获取附件。)

票数 4
EN

Stack Overflow用户

发布于 2012-04-06 19:01:33

根据定义,CouchDB附件是not accessible in show and list functions

显示和列表函数支持CommonJS。所以你只需要在设计文档中包含任何库即可。

代码语言:javascript
复制
{ "_id": "_design/example"
, "say_hi": "module.exports = function(person) { return 'Hello, ' + person }"
, "shows":
  { "hello": "function(doc, req) { var hi = require('say_hi'); return hi(req.query.me) }"
  }
}

这个视图看起来像这样

代码语言:javascript
复制
GET /my_db/_design/example/_show/hello?me=Jason

HTTP/1.1 200 OK
Server: CouchDB/1.2.0 (Erlang OTP/R15B)
Date: Fri, 06 Apr 2012 11:02:33 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 12


Hello, Jason
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10039623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档