获取409尝试通过Sync Gateway插入现有文档的附件

时间:2017-09-13 12:18:08

标签: javascript couchdb couchbase-sync-gateway couchdb-nano

我正在尝试为现有文档添加附件。我正在使用nano库发送数据和附件,以便以后通过CBLite访问。

我从db.attachment.insert创建的那些文档似乎没问题。但是,现在我需要为每个文档添加多个附件,我遇到了409问题。具体来说,我得到了:

  

409

     

文件存在

我已确认正在发送当前版本。

  try {
    let response = await db.getAsync(docId);
    rev = response._rev;
    console.log ('existing entry, rev:' + rev);
  } catch (error) {
    console.log ('new entry');
    let docRes = await db.insertAsync(word, docId);
    console.log (docRes);
    rev = docRes.rev;
  }


    //...
    var data = {};

    try {
      data = await fs.readFile(filePath);
    } catch (ex) {
      console.log ("error: "+filePath);
      console.log  (ex);
      continue;
    }

    if (data) {
      try {
        console.log ('inserting '+filename+' at rev', rev);
        let res = await db.attachment.insertAsync(docId, filename, data, 'audio/mpeg', {rev: rev});
        console.log('attachment inserted', res);
      } catch (error) {
        console.log (error.statusCode);
        console.log (error.message);
      }
    } else console.log('file data empty');

```

1 个答案:

答案 0 :(得分:1)

我发现了问题:filename字符串包含#个字符,因此导致了问题,更改名称/删除有问题的字符似乎解决了问题。