1

我正在尝试使用公钥加密(tweetnacl)验证文档。我知道您可以添加 commonjs 模块来验证功能,但还没有。

{
 "_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 模块?

4

1 回答 1

1

似乎将 NaCl lib 初始化为 commonjs 模块失败,因为它是一个匿名函数 - 尝试将 NaClexports作为上下文:

"lib": {
 "validation": "(function(nacl){..... })(exports)"
}
于 2015-04-29T13:01:23.083 回答