我使用bedDB 3.2.1。我有一个包含视图和现在更新功能的设计文档。尝试运行函数时,使用PUT和fetchAPI传递文档时,我得到500(内部服务器错误): http://my.company.xyz:5984/brunel/_design/brunel/_update/customerPrefs/5509
我尝试通过仅在函数末尾返回文档来进行调试,但是仍然遇到相同的问题。
设计文档如下:
"_id": "_design/brunel",
"_rev": "11-33c446a585aa4a63f3f848bd4979d721",
"views": {
"productCategoryNames": {
"map": "function (doc) { if ((doc.recordType === 'product') && doc.categoryName && doc.categoryCode){ emit([doc.categoryCode, doc.categoryName], null); }}",
"reduce": "_count"
},
"invoiceNumbers": {
"map": "function (doc) { if (doc.recordType === 'invoice'){ emit(doc.invoiceNumber, null); }}",
"reduce": "_count"
},
"supplierNames": {
"map": "function (doc) { if ((doc.recordType === 'supplier') && doc.supplierName){ emit(doc.supplierName, null); }}",
"reduce": "_count"
},
"productNames": {
"map": "function (doc) { if ((doc.recordType === 'product') && doc.description){ emit(doc.description, null); }}",
"reduce": "_count"
},
"customerNames": {
"map": "function (doc) { if ((doc.recordType === 'customer') && doc.customerName){ emit(doc.customerName, null); }}",
"reduce": "_count"
},
"batchReceiveDates": {
"map": "function (doc) { if (doc.recordType === 'batch'){ emit(doc.batchNumber, null); }}"
}
},
"updates": {
"customerPrefs": "function (doc, req){ return [doc]; }"
}
}
我认为将更新函数声明为设计文档的一部分可能存在问题。
我的目标是使用就地更新功能传递密钥对,密钥对将存储/附加在数组中,这是现有文档的一部分。
沙发数据库日志显示以下错误:
[错误] 2019-06-23T19:11:48.879976Z couchdb@127.0.0.1 <0.6521.378> 6734daf161操作系统进程错误<0.14007.353> :: {<<“ render_error” >>,<<“ undefined更新功能的响应“ >>}
答案 0 :(得分:0)
感谢Flimzy指出该函数必须返回两个值。我还发现在沙发床日志文件中查找调试更新程序中的JavaScript错误很有用。