到位更新功能获得“ 500(内部服务器错误)”

时间:2019-06-23 18:35:15

标签: couchdb

我使用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更新功能的响应“ >>}

1 个答案:

答案 0 :(得分:0)

感谢Flimzy指出该函数必须返回两个值。我还发现在沙发床日志文件中查找调试更新程序中的JavaScript错误很有用。