CouchDB 使用 javascript 来验证、查询、做 map-reduce 等等。我想知道有没有办法node.js
在这些 javascript 函数中使用库?比如使用require('http')
或安装了一些第三方模块npm
。
谢谢。
CouchDB 使用 javascript 来验证、查询、做 map-reduce 等等。我想知道有没有办法node.js
在这些 javascript 函数中使用库?比如使用require('http')
或安装了一些第三方模块npm
。
谢谢。
您可以使用 Node.js 库,只要它们不需要特定于 Node.js 的库,例如http
. 例如,异步在 CouchDB 中工作。经验法则:如果它是为服务器和客户端设计的,你应该很好。
您可以使用 CommonJSmodule.exports
和exports[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
。
不,没有办法从 CouchDb 内部的 Node 模块使用外部 JavaScript。你可以做一些有限的分享:http ://wiki.apache.org/couchdb/HTTP_view_API#Sharing_Code_Between_Views
Node 是一个暴露于 Javascript 语言绑定的平台,因此 Node 的“优点”在于执行环境。
虽然有一种使用 Python 编写视图的方法,但我不知道 Node 有什么类似的东西。