使用客户端javascript生产和开发密钥解析.com云应用程序

使用客户端javascript生产和开发密钥解析.com云应用程序,javascript,jquery,parse-platform,Javascript,Jquery,Parse Platform,我真的很喜欢学习有关web开发的知识。我有一个云应用程序,提供jade模板和一些云函数,我想在浏览器中从.js调用这些函数 我正在尝试使用设置进行开发和生产,但我感到困惑。我的理解是,在我的开发机器上有一个源代码树,但我将部署两个解析应用程序,作为开发和生产 使用命令行parse add似乎会将凭据添加到我的config/global.json文件中,但是需要进行云调用的静态服务的.js文件呢?它们首先是: Parse.$ = jQuery; Parse.initialize("my app i

我真的很喜欢学习有关web开发的知识。我有一个云应用程序,提供jade模板和一些云函数,我想在浏览器中从.js调用这些函数

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

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

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

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

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

您可以创建某种类型的构建脚本来修改键


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

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

然后它用生产版本替换.js文件中的所有dev id/key,部署到我的parse生产应用程序,最后还原.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

类似地,为了分离我们的环境,我们为每个需要的环境(比如dev、qa、prod)部署了一个解析应用程序,并使用不同的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

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