Return url 来自附件 PouchDB
Return url from attachment PouchDB
我正在尝试使用 CouchDB 和 PouchDB 创建网页。一开始我创建了一个 CouchDB 数据库 ('image')。在这个数据库中有一个文件有几个附件,都是图像 (.png)。我能够将 CouchDB 数据库与 PouchDB 同步。现在我想使用存储在 PouchDB 中的附件。
我使用 db.get 语句获取附件。
db.get('image', {attachments: true}).then(function (doc) {
console.log(doc);
});
现在我想获取不同的图像,因为我需要将它们作为不同位置的 src。目前我正在使用:
db.getAttachment('image', 'image1.png').then(function (blob) {
var url = URL.createObjectURL(blob);
console.log('URL image1 created');
}).catch(function (err) {
console.log('URL image1 not created');
console.log(err);
});
问题是我不知道如何访问创建的url。我想我必须使用 return 并使用全局变量。但是我不知道在这种情况下该怎么做。
我使用了以下 guide 但是,正如我所说,我想在代码的其他地方使用 url。
部分解决方案
问题似乎是 url 是在 img 标签尝试访问 url 之后生成的。这意味着即使您使用全局变量也会出错。因此我改变了顺序。
现在 src 在 url 生成后更新。问题仍然是它有点复杂并且在您处理多个附件的情况下并不是很有用。我仍然希望获得 url 以供进一步使用。
<body>
<img id ="test" alt="Image from DB" style="width:304px;height:228px;">
<script>
var url = " ";
var imageFW = db.getAttachment('image', 'image1.png');
imageFW.then(function (blob) {
url = URL.createObjectURL(blob);
document.getElementById("test").src = url;
}).catch(function (err) {
console.log(err);
});
</script>
更新:
最后我解决了使用 promises
的问题
我正在尝试使用 CouchDB 和 PouchDB 创建网页。一开始我创建了一个 CouchDB 数据库 ('image')。在这个数据库中有一个文件有几个附件,都是图像 (.png)。我能够将 CouchDB 数据库与 PouchDB 同步。现在我想使用存储在 PouchDB 中的附件。
我使用 db.get 语句获取附件。
db.get('image', {attachments: true}).then(function (doc) {
console.log(doc);
});
现在我想获取不同的图像,因为我需要将它们作为不同位置的 src。目前我正在使用:
db.getAttachment('image', 'image1.png').then(function (blob) {
var url = URL.createObjectURL(blob);
console.log('URL image1 created');
}).catch(function (err) {
console.log('URL image1 not created');
console.log(err);
});
问题是我不知道如何访问创建的url。我想我必须使用 return 并使用全局变量。但是我不知道在这种情况下该怎么做。
我使用了以下 guide 但是,正如我所说,我想在代码的其他地方使用 url。
部分解决方案
问题似乎是 url 是在 img 标签尝试访问 url 之后生成的。这意味着即使您使用全局变量也会出错。因此我改变了顺序。
现在 src 在 url 生成后更新。问题仍然是它有点复杂并且在您处理多个附件的情况下并不是很有用。我仍然希望获得 url 以供进一步使用。
<body>
<img id ="test" alt="Image from DB" style="width:304px;height:228px;">
<script>
var url = " ";
var imageFW = db.getAttachment('image', 'image1.png');
imageFW.then(function (blob) {
url = URL.createObjectURL(blob);
document.getElementById("test").src = url;
}).catch(function (err) {
console.log(err);
});
</script>
更新: 最后我解决了使用 promises
的问题