【问题标题】:Parse.com cloud app with client javascript production and development keysParse.com 云应用程序,带有客户端 javascript 生产和开发密钥
【发布时间】:2014-02-13 20:26:39
【问题描述】:

我真的很喜欢通过Parse.com 学习 Web 开发。我有一个云应用程序,它提供玉模板和一些我想从浏览器中的 .js 调用的云函数。

我正在尝试使用parse docs here 进行开发和生产设置,但我感到困惑。我的理解是,我的开发机器上会有一个源代码树,但我将部署两个解析应用程序作为开发和生产。

似乎使用命令行 parse add <alias> 会将凭据添加到我的 config/global.json 文件中,但是我需要进行云调用的静态提供的 .js 文件呢?他们开始了:

Parse.$ = jQuery;
Parse.initialize("my app id", "my app js key");

如果我只有一个代码存储库,我必须在部署到生产环境之前触摸这些键。这不可能是对的,不是吗?如果我忘记了,我会部署一个损坏的应用程序。是我搞混了,还是这只是我必须处理的事情?

【问题讨论】:

  • 与节点服务器联系,而不是使用服务器上的密钥,让 node.js 和 express 为您创建网页
  • 谢谢。您能详细说明答案吗?我是初学者。

标签: javascript jquery parse-platform


【解决方案1】:

对于给定的会话,您只需初始化 Parse 一次。这意味着您可以在浏览器从单个位置加载时执行此操作。

您可以创建某种修改键的构建脚本。

或者,在加载时,调用一个单独的服务来保存您的密钥并根据您的环境返回正确的密钥。

【讨论】:

    【解决方案2】:

    如果其他人有这个问题,这就是我所做的(感谢@Kenneth 的建议)。该脚本首先检查 git 是否有任何未暂存的更改。除非我签入所有更改,否则它会拒绝运行。

    然后它将 .js 文件中的所有开发 ID/密钥替换为生产版本,部署到我的解析生产应用程序,最后恢复 .js 文件以包含其开发密钥...

    #!/bin/bash
    
    if git diff-index --quiet HEAD --; then
        echo 'Replacing app id and js keys with production keys'
        sed -i '' 's/my-development-app-id/my-production-app-id/g' ./public/*.js
        sed -i '' 's/my-development-js-key/my-production-js-key/g' ./public/*.js
    
        parse deploy production
        echo 'Changing back to development keys'
        git checkout *.js
    else
        echo 'Must commit all changes before deploying to production'
    fi
    

    【讨论】:

      【解决方案3】:

      同样,为了分离我们的环境,我们为每个需要的环境(比如 dev、qa、prod)部署了一个 Parse 应用程序,并使用不同的结果 url(子域,但实际上任何不同的部分都可以)来区分它们并发现我们在代码中的环境。然后我们将环境存储在一个属性中。

      var APP_ID, JS_KEY;
      switch(location.host.split(".")[0]){  //Figure out environment off of the url (subdomain here)
          case 'myappprod': //ex: myappprod.parseapp.com
              MyApp.env = 'prod'
              APP_ID = 'theprodappid';
              JS_KEY = 'theprodjskey';
              break;
          case 'myappqa':
              MyApp.env = 'qa'
              APP_ID = 'theqaappid';
              JS_KEY = 'theqajskey';
              break;
          default: //otherwise dev
              MyApp.env = 'dev'
              APP_ID = 'thedevappid';
              JS_KEY = 'thedevjskey';
              break;
      }
      

      您还可以使用相同的技术提示您要在本地设置中使用的环境(应用程序)。只需让您与 Web 服务器一起使用的虚拟主机匹配所有三个本地 url。例如,使用 nginx:

      server_name myappdev.parseapp.dev myappqa.parseapp.dev myappprod.parseapp.dev;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-08
        • 2017-05-04
        • 1970-01-01
        • 2020-04-19
        • 1970-01-01
        • 2021-08-26
        • 2012-10-07
        • 1970-01-01
        相关资源
        最近更新 更多