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

500 Internal Server Error from Saving to couchDb

我正在尝试将文档保存到沙发数据库中。这是我用来拨打电话的代码

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)}}}