在 couchdb 本地数据库中使用 axios post 方法的问题
Issue with using the axios post method with a couchdb local database
我正在尝试使用 Axios 对本地 couchdb 数据库执行 post。
const options = {
headers: {
'Content-type': 'multipart/form-data',
Referer: "http://localhost:5984",
Accept: "application/json"
}
}
try{
const response = await axios.get("http://Username:Password@localhost:5984/users/" + user.Name + "/")
rev = response.data._rev
console.log("Fresh _rev acquired.\n\n")
}catch{
console.log("An error occured")
}
try{
var response = await axios.post('http://Username:Password@localhost:5984/users/' + user.Name + '/?_rev="' + rev + '"', user, options)
console.log("posted\n\n")
}catch(error){
console.log("post failed\n", error)
}
这会产生一条错误消息。 "Request failed with status code 500" 报错信息的数据行是:data: { error: 'case_clause', reason: 'undefined', ref: 2200284843 }
研究问题后我认为错误是axios使用multipart/form-data而不是application/json引起的,但是当我更改了我收到的错误,指出内容类型必须是 multipart/form-data。我找到了使用 post 方法的变通方法,方法是使用 get,然后删除数据库中的文档,最后使用 put 来创建新文档。在尝试了解我使用这种 post 方法遇到的问题几天后,我仍然两手空空,这真的让我很困扰。如果您有任何帮助,我将不胜感激。
通过在 header
中将 Content-type 改回 application/json 解决了错误 500
headers: {
'Content-type': 'application/json',
Referer: "http://localhost:5984",
Accept: "application/json"
}
对于此更改,couchdb 返回错误 415。经过更多挖掘和反复试验,我从 URL 中删除了 {docid} 和修订号,并将它们包含在数据部分请求。
try{
var response = await axios.post('http://Username:Password@localhost:5984/twitchusers/' /*+ user.Name + '/'?_rev="' + rev + '"'*/, {_id: user.Name, _rev: rev, user}, options)
console.log("posted\n\n")
}catch(error){
console.log("post failed\n", error)
}
此更改没有导致错误。
我正在尝试使用 Axios 对本地 couchdb 数据库执行 post。
const options = {
headers: {
'Content-type': 'multipart/form-data',
Referer: "http://localhost:5984",
Accept: "application/json"
}
}
try{
const response = await axios.get("http://Username:Password@localhost:5984/users/" + user.Name + "/")
rev = response.data._rev
console.log("Fresh _rev acquired.\n\n")
}catch{
console.log("An error occured")
}
try{
var response = await axios.post('http://Username:Password@localhost:5984/users/' + user.Name + '/?_rev="' + rev + '"', user, options)
console.log("posted\n\n")
}catch(error){
console.log("post failed\n", error)
}
这会产生一条错误消息。 "Request failed with status code 500" 报错信息的数据行是:data: { error: 'case_clause', reason: 'undefined', ref: 2200284843 }
研究问题后我认为错误是axios使用multipart/form-data而不是application/json引起的,但是当我更改了我收到的错误,指出内容类型必须是 multipart/form-data。我找到了使用 post 方法的变通方法,方法是使用 get,然后删除数据库中的文档,最后使用 put 来创建新文档。在尝试了解我使用这种 post 方法遇到的问题几天后,我仍然两手空空,这真的让我很困扰。如果您有任何帮助,我将不胜感激。
通过在 header
中将 Content-type 改回 application/json 解决了错误 500headers: {
'Content-type': 'application/json',
Referer: "http://localhost:5984",
Accept: "application/json"
}
对于此更改,couchdb 返回错误 415。经过更多挖掘和反复试验,我从 URL 中删除了 {docid} 和修订号,并将它们包含在数据部分请求。
try{
var response = await axios.post('http://Username:Password@localhost:5984/twitchusers/' /*+ user.Name + '/'?_rev="' + rev + '"'*/, {_id: user.Name, _rev: rev, user}, options)
console.log("posted\n\n")
}catch(error){
console.log("post failed\n", error)
}
此更改没有导致错误。