我正在尝试将文档保存到我的沙发数据库中。这是我用来拨打电话的代码
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"}
我已经尝试了很多东西,并将继续这样做。如果您有任何类似的问题,请告诉我。 在沙发错误日志方面,我也有点文盲。我想我理解它的要点,但也许我不这样做,如果你也可以帮助我从这个日志中更有意义。 谢谢!
答案 0 :(得分:0)
我很幸运,我调试这个非常快。按照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)}}}