CouchDB使用javascript进行验证、查询、做map reduce等操作。我想知道在这些javascript函数中有没有方法使用node.js
库?例如使用CCD_ 2或与CCD_ 3一起安装的一些第三方模块。
谢谢。
您可以使用Node.js库,只要它们不需要像http
这样的Node.js特定库。例如,async在CouchDB中工作。经验法则:如果它是针对服务器和客户端的,那么你应该很好。
您可以使用CommonJS的module.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
视图需要在lib/test
中导出值guests
。
不,没有办法从CouchDb内部的Node模块使用外部JavaScript。您可以进行一些有限的共享:http://wiki.apache.org/couchdb/HTTP_view_API#Sharing_Code_Between_Views
Node是一个暴露于Javascript语言绑定的平台,因此Node的"优点"在于执行环境。
虽然有一种使用Python编写视图的方法,但我不知道Node有什么类似的方法。