我正在尝试 PouchDB 和客户端 Javascript。PouchDB 网站上的示例对我来说非常有用:http ://pouchdb.com/getting-started.html 。我的问题是,当我连接到远程服务器时,有什么方法可以隐藏用户名和密码吗?有问题的代码:
var remoteCouch = 'http://user:pass@mname.iriscouch.com/todos';
Run Code Online (Sandbox Code Playgroud)
这都是客户端 JS 并且可以公开查看。我很难找到解决办法。
在开始开发之前,我想获得有关我正在考虑进行的更改(从 mongo 到 couch)的反馈。
基本上我有一个网络应用程序,用于帮助组织用户活动(todolist、日历、笔记、日记)。它目前使用 mongodb,但我正在考虑将其移动到 couch,主要是由于 couch 复制能力和 clientdb 交互(pouchdb)。我在浏览器上使用 localstorage 有一个类似的本地设置,由 mongo 支持,但我正在寻找更成熟的解决方案。
由于 couchdb 与 mongodb 的不同,我认为每个用户应该有自己的 couch 数据库,并且他们的文档是我的每个应用程序组件。基本上,由于本地数据库复制和安全性,我必须将所有内容与沙发一起提升一个级别。
我有 3 个问题。
1)我认为沙发没有文档级安全/身份验证,对吗?(因此我将每个用户资产转移到他们自己的数据库中,好主意吗?)
2)我的计划是让用户登录网站,然后我的后端nodejs代码对他们进行身份验证,并向他们发送一些身份验证/会话令牌。然后,客户端上的 javascript 使用其本地 pouchdb 数据进行自身设置,并将复制请求直接发送到 couchdb 服务器(使用从我的服务器端进程获取的身份验证令牌)。他们应该只能访问他们的数据库,因为我可以对每个数据库进行身份验证访问(正确吗?)您对此设置有何看法?应该有效吗?
3)关于couchdb服务提供商,为什么他们的couch版本差异如此之大?IE、happycouch、1.6.1、iris 1.5、cloudant、1.0.2?我还听说 couchdb 2.0 即将推出...我想使用 cloudant,但是 1.0.2 比 1.6 或 1.5 落后了很多版本,如果我不做任何异国情调的事情,这有什么关系吗?
额外问题 :p 继续上一个问题,您知道有哪些服务托管 Node.js 并具有可用的 couchdb 本地实例吗?我想使用我的后端服务器代码作为代理,但不以牺牲另一个网络跃点为代价。
非常感谢您的反馈,保罗
我正在尝试找到使用 PouchDB-find 插件进行分页的最佳解决方案。
目前我正在使用选项:“limit”和“skip”对结果进行分页,但不建议将此解决方案用于大型集合:https://docs.cloudant.com/cloudant_query.html#finding-documents-using-an -index和https://pouchdb.com/2014/04/14/pagination-strategies-with-pouchdb.html。
我知道 PouchDB-find 的灵感来自于 Cloudant,它提供了一个“书签”选项来帮助分页。知道 PouchDB-find 上是否可以使用“书签”或者它是否会很快实现?
我知道 PouchDB 仅适用于 CouchDB 兼容服务器。有没有办法在保持其原始架构的同时使用 SQL Server 作为后端?
我有一个想法如何实现这一点,但我不完全确定它是否可行。任何将导致这一结果的答案将不胜感激。
我认为可以完成的方法是使用 CouchDB 来存储同步元数据,如修订和成功同步所需的所有内容。然后,实际最新数据将按照其原始架构存储在 SQL Server 上。
为了能够做到这一点,我需要使用我的 C# 堆栈创建一个 CouchDB 兼容服务器。这将充当 CouchDB 和 PouchDB 之间的代理,因此我实际上不需要实现所有方法。我将不得不拦截某些方法,这些方法将允许我在服务器上保持 SQL Server 和 CouchDB 同步(遵循业务规则),同时利用 CouchDB 对 SQL Server 数据的同步功能。有了这个,我还可以添加一堆我希望将来使用的中间件。
这东西可行吗?我知道 express-pouchdb 存在,但它只是一个带有 PouchDB 后端的 CouchDB 兼容服务器。我想要的是让 CouchDB 和 SQL Server 一起工作。如果是这样,我应该怎么做?
我有一个服务器端 Web 应用程序,顶部有一个 RESTful Web API,还有一个与之通信的客户端 Web 应用程序。我想在 webapp 中实现离线存储和功能,以防服务器(或互联网)不可用。在客户端实现 PouchDB 并让它与我的restful webservice而不是CouchDB数据库同步是否可行?webservice需要遵守什么标准才能兼容couchdb/pouchdb?如果有更好的方法(如果可以的话,我不希望将后端从 postgresql/python 切换到 couchdb),是否有人对此有任何示例或有关如何以不同方式执行此操作的建议?
我想列出当前已删除的文档,以便能够取消删除一个或多个。
如何在 couchdb 中查询已删除的文档?我实际上正在使用 pouchdb。
尽管此 POST很好地描述了如何查询和取消删除文档,但它需要现有文档的 id。
我正在寻找一种查询所有已删除文档的方法。POST 引用了对所有更改进行查询。该查询返回所有已删除的文档以及已编辑/更改的任何文档。
我只查找已删除的文档。想想在“垃圾箱”中查询文档。:)
我正在努力理解这个错误:Uncaught TypeError: PouchDB is not a constructor
代码如下:
var PouchDB = require("pouchdb");
var db = new PouchDB("scr");
Run Code Online (Sandbox Code Playgroud)
我已经阅读了它如何与类型相关并添加:
"@types/node": "^10.12.0",
"@types/pouchdb": "^6.3.2",
Run Code Online (Sandbox Code Playgroud)
到我的 package.json 应该有帮助,但事实并非如此。我已经在另一个简单的 .js 文件上进行了测试并且可以正常工作,但在我的主应用程序上却不是。不过,我不明白为什么它不起作用。小袋文档非常清楚https://pouchdb.com/api.html#create_document。
我应该提到我在电子应用程序的上下文中运行它,而不是在浏览器中。
我在这一点上感到困惑,任何帮助将不胜感激。干杯!
我正在使用PouchDB和MVC.我通过javascript打开我的连接,如下所示:
var db = new PouchDB("MillersDB");
Run Code Online (Sandbox Code Playgroud)
我注意到在Chrome的控制台中,以下错误始终会立即出现:
Failed to load resource: the server responded with a status of 404 (Not Found)
blob:http%3A//localhost%3A51662/56b3fda3-cbad-4023-b8b1-4f3d3942d302
Run Code Online (Sandbox Code Playgroud)
我不确定是什么导致这种情况,或者是否有一个选项可以禁用它正在尝试使用的功能.我有兴趣在本地存储,我希望pouchDB能够做到这一点,并根据浏览器决定使用什么数据库.我禁用了所有Chrome扩展程序,以防它与其中一个相关.即使有错误,一切似乎都能正常工作......这更令人烦恼.我在IE中打开了我的页面并没有看到它.
我想知道PouchDB在移动应用程序中使用本地存储时,架构应该是什么样子localStorage.
此时我习惯将应用程序的数据缓存到localStorage需要的时候,我会对后端执行API调用以请求或发布数据.后端掌握着所有的逻辑.如:
然后将所有数据存储到关系数据库中.我现在一直在阅读NoSQL数据库,特别是CouchDB和PouchDB.所以我想知道这个架构会是什么样子?对我来说,此时出现了三个问题:
PouchDB在客户端可以与远程同步PouchDB.但是,当使用Javascript构建应用程序时,如何PouchDB通过"黑客"客户端Javascript 确保人们不插入数据?3rd party,你只需要举一个Sails.js后端围绕CouchDB?我在互联网上寻找有关Pouchdb的各种信息,我喜欢将远程数据库与本地浏览器数据库同步的想法.我想到的第一个问题是它是否在每个设备上存储整个数据库并在每个设备上创建副本?想象一下,我正在创建一个聊天应用程序,所有通信都将使用此应用程序存储在所有设备上.然后,一个用户可以查看其他人的对话.我查看了Pouchdb文档,发现了过滤复制.任何人都可以解释这种同步是如何工作的,以及是否可以仅将数据同步到特定用户?
例:
这是一个远程数据库,例如在云中,保存所有信息.
远程数据库:
/ user/secret informations /
/ Joe /"秘密信息"/
/丹/"秘密信息"/
在这里,我想仅为特定用户同步数据.不要同步整个数据库,只能同步用户特定的数据.
乔的装置
/ user/secret informations /
/ Joe /"秘密信息"/
丹的装置
/ user/secret informations /
/丹/"秘密信息"/
我相信我解释了我的问题.谢谢你的回答.
pouchdb ×10
couchdb ×6
javascript ×2
node.js ×2
c# ×1
cordova ×1
couchbase ×1
database ×1
electron ×1
indexeddb ×1
offline ×1
pagination ×1
rest ×1
sails.js ×1
security ×1
sql-server ×1
web-services ×1