使用javascript在couchdb中存储内联附件

时间:2012-02-24 12:34:52

标签: javascript couchdb

我想将内联附件与新文档一起存储。任何正文都可以提供java脚本片段来存储内联附件。是否有任何方法可以在附加文件时提供密钥。

提前致谢

1 个答案:

答案 0 :(得分:2)

首先,请阅读CouchDB attachments文档。

例如:

  • 在文件my_doc
  • 附加文件hello.html
  • 内容Hello, world

使用base64对内容进行编码。 "Hello world""'SGVsbG8gd29ybGQ="

你创建了一个这样的文档:

{ "_id": "my_doc",
, "_attachments":
  { "hello.html":
    { "content_type": "text/html"
    , "data": "'SGVsbG8gd29ybGQ="
    }
  }
}

唯一困难的部分是base64编码。我建议您使用CouchDB中包含的base64脚本。

<html>
  <head>
   <script src="/_utils/script/base64.js"></script>
  </head>
  <body>
   The Base64 of "Hello world" is:
   <script>
    var hello = "Hello world"
    var encoded = Base64.encode(hello)
    document.write(encoded)
   </script>

  <p>

  A document with this attachment is:<br>
  <script>
   var doc = { "_id":"my_doc" }

   doc._attachments = {}
   doc._attachments["hello.html"] = {}
   doc._attachments["hello.html"].content_type = "text/html"
   doc._attachments["hello.html"].data = Base64.encode("Hello world")

   document.write(JSON.stringify(doc))       
  </script>
  </body>
</html>