2

CouchDB 使用 javascript 来验证、查询、做 map-reduce 等等。我想知道有没有办法node.js在这些 javascript 函数中使用库?比如使用require('http')或安装了一些第三方模块npm

谢谢。

4

2 回答 2

1

您可以使用 Node.js 库,只要它们不需要特定于 Node.js 的库,例如http. 例如,异步在 CouchDB 中工作。经验法则:如果它是为服务器客户端设计的,你应该很好。

您可以使用 CommonJSmodule.exportsexports[something]模式在视图之间共享代码。查看文档以获取更多详细信息。

例如,考虑这个视图:

{
  _id:"_design/test",
  views: {
    lib: {
      test: "exports.guests = 42;"
    },
    fish_per_person: {
      map: function(doc){
        var guests = require('views/lib/test').guests; // 42
        emit(doc.number_of_fish, doc.number_of_fish / guests);
      }
    }
  }
}

fish_per_person视图需要guests导出的值lib/test

于 2013-08-30T21:17:09.437 回答
0

不,没有办法从 CouchDb 内部的 Node 模块使用外部 JavaScript。你可以做一些有限的分享:http ://wiki.apache.org/couchdb/HTTP_view_API#Sharing_Code_Between_Views

Node 是一个暴露于 Javascript 语言绑定的平台,因此 Node 的“优点”在于执行环境。

虽然有一种使用 Python 编写视图的方法,但我不知道 Node 有什么类似的东西。

于 2013-08-28T11:22:38.403 回答