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

此更改没有导致错误。