Добавить криптобиблиотеку 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)"
}