Parse.com云应用程序与客户端JavaScript生产和开发密钥

时间:2014-02-13 20:26:40

标签: javascript jquery parse-platform

我真的很高兴用Parse.com学习网页开发。我有一个云应用程序,它提供jade模板和一些我想在浏览器中从.js调用的云函数。

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

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

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

如果我只有一个代码存储库,那么在部署到生产环境之前,我将不得不触摸这些密钥。那可能不对,可以吗?如果我忘了,我会部署一个破碎的应用程序。我混淆了,还是这只是我必须处理的事情?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

然后它用生产版本替换.js文件中的所有开发/密钥,部署到我的解析生产应用程序,最后恢复.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

答案 2 :(得分:0)

同样,为了分离我们的环境,我们为每个需要的人(例如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;
}

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

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