cordova - 使用 CouchDB/PouchDB 时的应用程序架构

标签 cordova couchdb ionic-framework sails.js pouchdb

我想知道使用 PouchDB 时架构应该是什么样子的作为移动应用程序中的本地存储,而不是 localStorage .

此时我习惯将我的应用程序的数据缓存到 localStorage并在需要时对后端执行 API 调用以请求或发布数据。后端保存所有逻辑。如:

  • 此用户是否具有执行此操作的正确权限/角色?
  • 检查是否可以完成操作所需的任何其他逻辑

  • 然后将所有数据存储到关系数据库中。我现在一直在阅读有关 NoSQL 数据库的文章,特别是 CouchDBPouchDB .所以我想知道这个架构会是什么样子?对我来说,此时出现了三个问题:
  • 如果我有多个用户拥有自己的身份验证,我如何确保用户只能访问他们的数据?我在服务器端还会有 1 个数据库吗?
  • PouchDB客户端可以与远程同步PouchDB .但是当使用 Javascript 构建应用程序时,您如何确保人们不会将数据插入 PouchDB通过“破解”客户端 Javascript?
  • 在这些类型的设置中,后端的使用会消失吗?如果您想为 3rd party 提供 API ,你只需输入一个 Sails.js后端围绕 CouchDB ?
  • 最佳答案

    PouchDB 维护者在这里,很高兴回答您的问题。 :)

    If I have multiple users with there own authentication, how can I make sure that the users get access to only their data? And will I still have 1 database on server end?



    the pouchdb-authentication README有指南. Cloudant 和 Couchbase 也有自己的用户管理系统。

    PouchDB on the client side can be in sync with a remote PouchDB. But when an application is build with Javascript how do you make sure that people are not inserting data into PouchDB by 'hacking' the client-side Javascript?



    你写一个 validate_doc_update服务器端的功能。当 PouchDB 尝试同步到 CouchDB 时,任何失败的文档都会发出 'denied'事件,这些文件将不会同步。

    至于本地数据库,你不能阻止用户写坏数据(他们总是可以打开控制台为所欲为),但你可以使用类似 pouchdb-validation 的东西。在客户端重新使用您的验证功能。或者你也可以自己做,当你put()一份文件。

    Would the use of a backend be gone in these kinds of setups? And if you want to have an API for 3rd party, you just put for example an Sails.js backend around the CouchDB?



    有些人在没有任何后端的情况下编写 PouchDB 应用程序(仅使用纯 CouchDB/Cloudant/Couchbase),而其他人则喜欢将数据库与他们选择的服务器架构混合。由你决定。 :)

    如果您使用 Express,一个有趣的解决方案是使用 express-pouchdb ,因此您可以在现有架构中公开类似 PouchDB 服务器的端点。但是,对于 Sails.js,您必须自己编写。

    关于cordova - 使用 CouchDB/PouchDB 时的应用程序架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30758964/

    相关文章:

    ios - Cordova - 体系结构 x86_64 的 undefined symbol

    java - 如何在没有互联网的情况下获取 phonegap 中的地理位置?

    crash - CouchDB 意外终止

    javascript - 功能策略已在本文档中禁用地理定位

    android - Phonegap/Pushwoosh Android 检索设备 ID/ token

    node.js - Apache Cordova 在 Yosemite 上安装失败

    ubuntu - CouchDB 无法启动,没有具体错误

    javascript - couchdb 响应,使用 aurelia fetch 客户端将 400 状态发布到 _user db

    android - 如何将 .aar 文件与 ionic 应用程序集成

    android - ionic ngIf return 语句永远循环