Добавить криптобиблиотеку tweetNaCL-js в функцию CouchDB validate_doc

Я пытаюсь проверить документ, используя криптографический открытый ключ ( 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?

1 ответ

Похоже, инициализация NaCl lib, так как модуль commonjs не работает, потому что это анонимная функция - попробуйте дать NaCl exports как контекст:

"lib": {
 "validation": "(function(nacl){..... })(exports)"
}
Другие вопросы по тегам