【问题标题】:Angular database without a server没有服务器的 Angular 数据库
【发布时间】:2016-11-28 14:46:23
【问题描述】:

我正在处理一个虚拟电话簿应用程序的任务,这是本地前端职位空缺测试的“加分”部分。我以前用 angular 做过一些基本的应用程序,但我总是将它与 php 和 mysql 一起使用。对于这个项目,需求状态是我无法与服务器通信,因此我需要在没有真实数据库的情况下存储、编辑、删除和搜索数据。

我什至不知道有什么选择可以实现这样的目标,也不知道我应该选择哪一个。我正在寻找一种可以帮助我实现这些要求的最简单的工具,最好是具有良好文档的工具,可以帮助我尽快启动和运行。

【问题讨论】:

    标签: angularjs local-storage ng-storage


    【解决方案1】:

    您可以使用简单的本地文件系统并使用 JSON.stringify() 将对象存储为 JSON,然后使用 JSON.parse(jsonstring) 解析它们

    将电话簿写入服务器文件

    var phonebook = {
        'name1' : 234283409,
        'name2' : 234253453,
        'name3' : 234234236
    };
    
    var jsonStr = JSON.stringify(phonebook);
    
    /*
    __________________
    contents of jsonStr
    
    {"name1":234283409,"name2":234253453,"name3":234234236}
    __________________
    write a logic here to save this JSON on a file in your server.
    */
    

    将电话簿读取到服务器的文件中

    //write a logic here to read JSON back from your server's file
    var jsonStr = getJSONDataFromServer();
    
    var phonebook = JSON.parse(jsonStr);
    
    //now you can use your phonebook as a usual js object
    

    【讨论】:

      【解决方案2】:

      您可以使用 csv 文件来存储您的数据。

      【讨论】:

        【解决方案3】:

        要在客户端存储数据,您可以使用任何本地存储方法:

        • WebStorage:Web 存储 API(同时提供 sessionStoragelocalStorage
        • gears:基于 Google Gears 的持久存储
        • whatwg db:HTML 数据库存储标准
        • cookie:基于 Cookie 的持久存储 RFC

        最佳选择取决于您需要存储的数据类型以及该数据的用途。最常见的选择是WebStorage

        如果您使用 Angular,可以使用出色的模块 ngStorage,它使 Web Storage 以 Angular 方式工作。

        请注意:

        • 当然,每个用户您只能存储数据(即,您不能存储应用程序的任何全局状态)。
        • 任何客户端存​​储解决方案都有严格的空间限制,这通常因浏览器而异。

        如果您只是不想使用任何本地服务器解决方案,您可以尝试一些云平台,例如,firebase(刚刚被 Google 收购)或其他。

        【讨论】:

        • 非常感谢,我开始使用 ngStorage 处理它,但我想知道我需要的所有功能是否都可以通过这种方法实现。我需要为每个联系人添加一个 id 键,我需要一个选项来根据他们的 ID 在单独的视图中显示和编辑每个联系人,我还需要一个选项来搜索特定的姓名或号码.
        • 如果您需要为每个联系人添加 uniq id 密钥,您确实需要一个服务器端后端... :-) 请阅读有关 firebase...
        【解决方案4】:

        您可以使用Google's Firebase。如果 firebase 对您来说很复杂,那么请使用简单的 localstorage。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-18
          • 2019-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-20
          相关资源
          最近更新 更多