500服务器内部保存到couchDb错误

500 Internal Server Error from Saving to couchDb

本文关键字:couchDb 错误 保存 服务器 内部      更新时间:2023-09-26

我试图将一个文档保存到我的沙发数据库。下面是我用来调用

的代码
function splitIntoItemsThenSendItemsToCouch(dumpDoc){
  var items = dumpDoc.children[0].children[0].children;
  for(var i = 0; i < items.length; i++){
    var doc = { "_id":items[i].children[1].textContent, "_attachments": {"content_type":"text'/plain","data":window.btoa(items[i].outerHTML)}}
    db.saveDoc(doc)
  }
}

下面是我在尝试保存文档时从沙发上得到的错误日志的示例。

[Tue, 07 Jul 2015 17:42:19 GMT] [error] [<0.112.0>] function_clause error in HTTP request
[Tue, 07 Jul 2015 17:42:19 GMT] [info] [<0.112.0>] Stacktrace: [{couch_doc,'-transfer_fields/2-fun-0-',
                                    [{<<"content_type">>,<<"text/plain">>}],
                                    [{file,"couch_doc.erl"},{line,227}]},
                                {lists,map,2,[{file,"lists.erl"},{line,1224}]},
                                {couch_doc,transfer_fields,2,
                                    [{file,"couch_doc.erl"},{line,227}]},
                                {couch_httpd_db,couch_doc_from_req,3,
                                    [{file,"couch_httpd_db.erl"},{line,793}]},
                                {couch_httpd_db,db_doc_req,3,
                                    [{file,"couch_httpd_db.erl"},{line,582}]},
                                {couch_httpd_db,do_db_req,2,
                                    [{file,"couch_httpd_db.erl"},{line,234}]},
                                {couch_httpd,handle_request_int,5,
                                    [{file,"couch_httpd.erl"},{line,318}]},
                                {mochiweb_http,headers,5,
                                    [{file,"mochiweb_http.erl"},{line,94}]}]
[Tue, 07 Jul 2015 17:42:19 GMT] [info] [<0.112.0>] 192.168.1.25 - - PUT /items4493/C-11034 500
[Tue, 07 Jul 2015 17:42:19 GMT] [error] [<0.112.0>] httpd 500 error response:
 {"error":"unknown_error","reason":"function_clause"}

我已经尝试了很多事情,并将继续这样做。如果你们有类似的问题,请告诉我。此外,当谈到沙发错误日志时,我有点文盲。我想我理解它的要点,但也许我不这样做,所以如果你也能帮助我做一点更有意义的这个日志。谢谢你!

我很幸运,我很快就调试好了。跟着https://wiki.apache.org/couchdb/HTTP_Document_API#Inline_Attachments的方向,我意识到我犯了一个愚蠢的错误。我忘记给附加的文件命名了。所以我修改了

  var doc = { "_id":items[i].children[1].textContent, "_attachments": {"content_type":"text'/plain","data":window.btoa(items[i].outerHTML)}}

    var doc = {"_id":items[0].children[1].textContent, "_attachments": {"items_metadata":{"content_type":"text'/plain","data":window.btoa(items[0].outerHTML)}}}