(Pour être clair, je pose cette question afin de fournir la réponse que j'ai trouvée dans le but d'aider d'autres personnes qui ont été touchées de la même manière par la fermeture de Parse) =
Parse.com a récemment annoncé la fermeture de sa boutique en janvier 2017, mais heureusement, ils ont fait leur logiciel open source Parse Server afin que nous puissions tous héberger nos propres instances de serveur Parse.
J'ai examiné les différentes options disponibles pour l'hébergement de Parse Server et j'ai décidé d'héberger la mienne sur Heroku
J'ai adoré Parse car il était si facile à utiliser et je n'ai pas vraiment d'expérience dans la mise en place d'un backend. J'ai essayé de suivre plusieurs guides en ligne, mais je les ai tous trouvés un peu difficiles à comprendre avec des étapes vagues ou des étapes qui vous emmènent dans un trou de lapin sur un autre site en installant un tas d'outils et tout devient un peu déroutant.
Comment puis-je héberger Parse Server sur heroku, le configurer pour accepter les demandes interdomaines de mon application, créer une base de données MongoDB et migrer toutes mes données de Parse vers la nouvelle base de données?
https://www.parse.com/apps/<APP_NAME>/edit#keys
où <APP_NAME>
est le nom de votre application. Si vous créez une nouvelle application, vous pouvez générer des clés aléatoires ici . Vous pouvez ajouter de nouvelles clés pour tous les sdks que vous prévoyez d'utiliser, j'en ajoute une pour le sdk javascript ici.$ heroku login
, entrez votre e-mail et votre mot de passe HerokuEntrer $ heroku git:clone -a <MY_APP_NAME>
(où <MY_APP_NAME>
est le nom de votre application heroku) pour faire une copie locale de votre dépôt de code serveur, vous pouvez également utiliser l'url git de ce que nous avons vu précédemment. Lorsque vous clonez le référentiel, le message "avertissement: vous semblez avoir cloné un référentiel vide" s'affiche. Le dossier d'application sera créé mais il ne contiendra que les fichiers git standard et aucun serveur d'analyse. Pour résoudre ce problème. Allez dans le git repo officiel de parse-server-example , téléchargez le fichier Zip du repo. Extrayez le dossier, faites glisser tous les fichiers et dossiers du dossier parse-server-example-master vers votre dossier d'application.
De retour dans le terminal, entrez $ cd <MY_APP_NAME>
pour entrer dans le repo
package.json
et ajouter "cors": "*"
au dependencies
comme ceci:.
"dependencies": {
"express": "~4.2.x",
"kerberos": "~0.0.x",
"parse": "~1.6.12",
"parse-server": "~2.0", // <= don't forget this comma
"cors": "*" // add this line
}
Assurez-vous de supprimer les commentaires ci-dessus dans votre code réel car il ne sera pas valide JSON
index.js
et apportez ces modifications:.
var express = require('express'); // find this line in the file
var cors = require('cors') // add this line below it
//....
//var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI // old name, you may need to change this for new deployments
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI // changed to MONGODB_URI in Heroku!
//....
var app = express(); // find this line in the file
app.use(cors()); // add this line below it
//Add declarations for any keys you plan to use as shown below
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '',
serverURL: process.env.SERVER_URL || 'http://localhost:1337',
javascriptKey: process.env.JAVASCRIPT_KEY || '', //** add this line no need to set values, they will be overwritten by heroku config vars
restAPIKey: process.env.REST_API_KEY || '', //** add this line
dotNetKey: process.env.DOT_NET_KEY || '', //** add this line
clientKey: process.env.CLIENT_KEY || '', //** add this line
});
.
$ git add .
$ git commit -am "make it better"
$ git Push heroku master
<MY_APP_ID>
, <MY_JS_KEY>
, <MY_HEROKU_APP_NAME>
dans le violon aux valeurs appropriées pour votre application puis cliquez sur "Exécuter".
Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
Si vous utilisez l'outil jsfiddle avec plusieurs instances de serveur d'analyse, vous pouvez obtenir l'erreur "jeton de session non valide". Si cela se produit, ouvrez la console de développement et supprimez toutes les clés "d'analyse" du stockage local, après cela, cela devrait fonctionner:
Vous devez le faire au moins une fois avec une application de test avant de migrer une application de production. En outre, il semble que l'héritage files
de votre ancienne application peut ne pas encore être transféré, voir ce problème GitHub
https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources
, cliquez sur "MongoLab" à côté de son icône, puis, sur la page suivante, cliquez sur "Supprimer toutes les collections"https://dashboard.parse.com/apps/<APP_NAME>/settings/general
où <APP_NAME>
est le nom de votre application d'analyse MONGOLAB_URI
que nous avons noté précédemment