保存到 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)}}}
我正在尝试将文档保存到沙发数据库中。这是我用来拨打电话的代码
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)}}}