我将一些vue文件作为附件保存在我的pouchdb中。在应用程序启动时,应用程序应从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>
答案 0 :(得分:0)
我还没有使用pouchDB,但是我想您应该将内容类型更改为例如“文本/纯文本”。 另一种选择是将八位字节流数据转换为文本:
let string = new TextDecoder("utf-8").decode(blob_buffer);