将tweetNaCL-jsencryption库添加到CouchDB validate_doc函数中

我正在尝试使用公钥encryption( tweetnacl )来validation文档。 我知道你可以添加commonjs模块来validationfunction,但一直未能。

{ "_id": "_design/validate_update", "language": "javascript", "validate_doc_update": "function(newDoc, oldDoc, userCtx){ verify=require('lib/validation').sign.detached.verify; if(verify(newDoc.message, new.Doc.signature, oldDoc.publicKey)){ return true; } }", "lib": { "validation": "exports.nacl=(function(nacl){..... })" } } 

当我这样做时,我得到的错误:

  Module require('lib/validation') raised error (new TypeError("func.apply is not a function", "/usr/local/share/couchdb/server/main.js", 1181)) 

我想我必须以某种方式改变tweetnacl代码被解释为commonjs模块?

看起来好像NaCl的初始化一样,commonjs模块由于其匿名function而失败 – 试图以NaCl为出发点:

 "lib": { "validation": "(function(nacl){..... })(exports)" }