前言
PouchDB 是一款使用 JavaScript 语言编写的基于浏览器的 NoSQL 数据库。它支持将数据存储在浏览器端,具有离线同步、版本控制、索引查询等功能。但是,PouchDB 只能处理文本数据,无法处理二进制数据。pouchdb-binary-utils 正式为了解决这个问题而生的。
本文将介绍 npm 包 pouchdb-binary-utils 的使用方法,以帮助读者解决使用 PouchDB 存储二进制数据的问题。
安装
使用 npm 安装 pouchdb-binary-utils:
npm install --save pouchdb-binary-utils
使用方法
API
pouchdb-binary-utils 提供了以下 API:
btoa
: 将二进制数据转换为 base64 编码的字符串atob
: 将 base64 编码的字符串转换为二进制数据binaryStringToArrayBuffer
: 将二进制字符串转换为 ArrayBufferarrayBufferToBinaryString
: 将 ArrayBuffer 转换为二进制字符串
将 ArrayBuffer 存储到 PouchDB
在将 ArrayBuffer 存储到 PouchDB 中之前,需要将其转换为 base64 编码的字符串。pouchdb-binary-utils 提供了 btoa
API,可以轻松地完成该转换:
const binaryUtils = require('pouchdb-binary-utils'); const myArrayBuffer = new Uint8Array([72,69,76,76,79]).buffer; // "HELLO" const base64String = binaryUtils.btoa(myArrayBuffer);
然后,可以使用 PouchDB 的 put
API 将 base64 编码的字符串存储到数据库中:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -- - --- ---------------- -------- ---- -------- ----------- ------------ ---------------- ---------- - ---------------------- ----------------- ----- - ----------------- ---
从 PouchDB 中获取 ArrayBuffer
从 PouchDB 获取数据时,需要将 base64 编码的字符串转换为 ArrayBuffer。pouchdb-binary-utils 提供了 atob
API,可以轻松地完成该转换:
db.get('mydoc').then(function (doc) { const binaryString = binaryUtils.atob(doc.binaryData); const myArrayBuffer = binaryUtils.binaryStringToArrayBuffer(binaryString); console.log(myArrayBuffer); }).catch(function (err) { console.log(err); });
示例代码
完整示例代码如下:
-- -------------------- ---- ------- ----- ----------- - -------------------------------- ----- ------- - ------------------- ----- -- - --- ---------------- -- - ----------- --- ------- ----- ------------- - --- ------------------------------------ -- ------- ----- ------------ - -------------------------------- -------- ---- -------- ----------- ------------ ---------------- ---------- - ---------------------- ----------------- ----- - ----------------- --- -- - ------- --- ----------- ----------------------------- ----- - ----- ------------ - --------------------------------- ----- ------------- - ---------------------------------------------------- --------------------------- ----------------- ----- - ----------------- ---
结论
本文介绍了 npm 包 pouchdb-binary-utils 的使用方法,可以帮助读者使用 PouchDB 存储二进制数据。pouchdb-binary-utils 提供了 btoa
、atob
、binaryStringToArrayBuffer
和 arrayBufferToBinaryString
四个 API,将二进制数据和字符串之间的转换变得非常简单。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/61095