获取 pouchdb 附件的内容

Get content of pouchdb attachment

我在我的 pouchdb 中保存了一些 vue 文件作为附件。在应用程序启动时,应用程序应从 pouchdb 加载所有 vue 文件,将其添加到路由器并在运行时进行渲染。我目前的问题:如何获取vue文件的内容(文本),以便在运行时导入或解析它。

import PouchDB from 'pouchdb';
const dbsfc = new PouchDB('db_components');

dbsfc.replicate.from('http://167.86.69.128:5984/single_file_components/', {live: true, retry: true});

      dbsfc.getAttachment('login', 'Login.vue', function(err, blob_buffer) {
          if (err) {
              return console.log(err);
          } else {
              console.log(blob_buffer);
          }
      });

我在控制台中获得的内容:

Uint8Array(6204) [60, 116, 101, 109, 112, 108, 97, 116, 101, 62, 10, 32, 32, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 34, 119, 114, 97, 112, 112, 101, 114, 32, 102, 97, 100, 101, 73, 110, 68, 111, 119, 110, 34, 62, 10, 32, 32, 32, 32, 60, 100, 105, 118, 32, 105, 100, 61, 34, 102, 111, 114, 109, 67, 111, 110, 116, 101, 110, 116, 34, 62, 10, 32, 32, 32, 32, 32, 32, 60, 33, 45, 45, 32, 76, 111, 103, 105, 110, 32, 70, 111, 114, 109, 32, 45, 45, 62, 10, 32, …][0 … 99][100 … 199][200 … 299][300 … 399][400 … 499][500 … 599][600 … 699][700 … 799][800 … 899][900 … 999][1000 … 1099][1100 … 1199][1200 … 1299][1300 … 1399][1400 … 1499][1500 … 1599][1600 … 1699][1700 … 1799][1800 … 1899][1900 … 1999][2000 … 2099][2100 … 2199][2200 … 2299][2300 … 2399][2400 … 2499][2500 … 2599][2600 … 2699][2700 … 2799][2800 … 2899][2900 … 2999][3000 … 3099][3100 … 3199][3200 … 3299][3300 … 3399][3400 … 3499][3500 … 3599][3600 … 3699][3700 … 3799][3800 … 3899][3900 … 3999][4000 … 4099][4100 … 4199][4200 … 4299][4300 … 4399][4400 … 4499][4500 … 4599][4600 … 4699][4700 … 4799][4800 … 4899][4900 … 4999][5000 … 5099][5100 … 5199][5200 … 5299][5300 … 5399][5400 … 5499][5500 … 5599][5600 … 5699][5700 … 5799][5800 … 5899][5900 … 5999][6000 … 6099][6100 … 6199][6200 … 6203]type: "application/octet-stream"__proto__: Uint8Array

我的 pouchdb 文档:

{
  "_id": "login",
  "_rev": "3-a0a86cc1f4edc56a8bed8982ac00eb8c",
  "_attachments": {
    "Login.vue": {
      "content_type": "application/octet-stream",
      "revpos": 2,
      "digest": "md5-u0vcUl76jzVfN12h2fAL7g==",
      "length": 6204,
      "stub": true
    }
  }
}

我的预期:

<template>
  <div class="wrapper fadeInDown">
 ...
</template>
<script>...</script>
<style>
...
</style>

我没有使用过 pouchDB,但我想您应该将您的内容类型更改为例如"text/plain"。 另一种选择是将 octet-stream 数据转换为文本:

let string = new TextDecoder("utf-8").decode(blob_buffer);