sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo puedo alojar mi propio Parse Server en Heroku usando MongoDB?

Servidor Parse autohospedado en Heroku

Configurar Heroku, MongoDB y Parse

  1. Visite https://signup.heroku.com/ y regístrese para obtener una cuenta
  2. Verifica tu correo electrónico e inicia sesión en Heroku
  3. Ir a Implementación de un servidor Parse en Heroku
  4. Haga clic en "Implementar en Heroku"

  1. Dé un nombre a su servidor de análisis
  2. Omita el APP_ID y MASTER_KEY de la aplicación por ahora, lo configuraremos en un paso posterior.
  3. Haga clic en "Implementar gratis"

  1. Si aparece el cuadro a continuación, ingrese la información de su tarjeta de crédito para verificar su cuenta. No se preocupe, no se le cobrará a menos que actualice su cuenta más tarde . Esta es simplemente una medida de seguridad que Heroku ha implementado para evitar el abuso.

  1. Heroku creará su aplicación. En segundo plano, también creará un repositorio .git para usted y clonará el contenido del repositorio git oficial parse-server-example, creará una base de datos MongoDB y configurará su aplicación Heroku para usar esa base de datos.
  2. Cuando se crea la aplicación, accederá al panel de control de Heroku o puede acceder allí iniciando sesión, haciendo clic en "Aplicaciones personales" y luego haciendo clic en el nombre de su servidor de análisis
  3. En el panel de su aplicación, haga clic en "Configuración" y luego en "Mostrar variables de configuración"

  1. Complete el APP_ID y MASTER_KEY de su aplicación. Si tiene una aplicación en Parse.com ahora, puede usar las mismas teclas que usa. Puede obtenerlos en https://www.parse.com/apps/<APP_NAME>/edit#keys donde <APP_NAME> es el nombre de su aplicación. Si está creando una nueva aplicación, puede generar claves aleatorias aquí. Puede agregar nuevas claves para cualquier sdk que planee usar, estoy agregando una para el sdk de javascript aquí.

  1. Tome nota del valor de MONGOLAB_URI, lo necesitará más adelante si desea migrar sus datos Parse existentes a su nueva base de datos
  2. Desplácese hacia abajo y anote la URL de Git y el dominio de Heroku para su aplicación, los necesitará más adelante

  1. Instale Heroku Toolbelt, que es una herramienta de interfaz de línea de comandos para administrar sus aplicaciones de Heroku.

  2. Abra un mensaje de terminal e ingrese $ heroku login , ingrese su correo electrónico y contraseña de Heroku

  3. Ingresa $ heroku git:clone -a <MY_APP_NAME> (donde <MY_APP_NAME> es el nombre de su aplicación heroku) para hacer una copia local del repositorio de código de su servidor, también puede usar la URL de git que vimos anteriormente. Cuando clone el repositorio, verá el mensaje "advertencia:parece que ha clonado un repositorio vacío". Se creará la carpeta de la aplicación, pero solo contendrá los archivos git estándar y ningún servidor de análisis. Para arreglar esto. Vaya al repositorio oficial de git parse-server-example, descargue el archivo zip del repositorio Extraiga la carpeta, arrastre todos los archivos y carpetas de la carpeta parse-server-example-master a la carpeta de su aplicación.

  4. De vuelta en la terminal, ingrese $ cd <MY_APP_NAME> para pasar al repositorio

Habilite CORS (para que pueda usar la API de otros dominios)

  1. En su disco duro, busque y abra la copia local del repositorio que acabamos de crear
  2. En la carpeta, abra package.json y agrega "cors": "*" a las dependencies así:

.

  "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
  }

NOTA

Asegúrese de eliminar los comentarios anteriores en su código real, ya que no será JSON válido

  1. Abrir index.js y haz estos cambios:

.

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
});
  1. Vuelva a la ventana de la terminal, asegúrese de que todavía está en la carpeta del repositorio que clonamos e ingrese lo siguiente para enviar los cambios a Heroku:

.

$ git add .
$ git commit -am "make it better"
$ git push heroku master

Pruebe su nuevo servidor Parse

  1. Ir a esta página jsFiddle
  2. Cambiar <MY_APP_ID> ,<MY_JS_KEY> ,<MY_HEROKU_APP_NAME> en el violín a los valores apropiados para su aplicación, luego haga clic en "Ejecutar"

.

Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
  1. Debería recibir la siguiente alerta para informarle que su nuevo servidor Parse está funcionando correctamente

NOTA:

Si utiliza la herramienta jsfiddle con varias instancias de servidor de análisis, es posible que obtenga el error "token de sesión no válido". Si esto sucede, abra la consola de desarrollo y elimine todas las claves de "análisis" del almacenamiento local; después de eso, debería funcionar:

Migra tus datos existentes desde Parse

Debe hacer esto al menos una vez con una aplicación de prueba antes de migrar una aplicación de producción. Además, parece que los files heredados Es posible que aún no se transfiera desde su aplicación anterior, consulte este problema de GitHub

  1. Antes de migrar , si su nuevo MongoDB tiene datos, la migración fallará. Si acaba de probar el servidor y creó un objeto, vaya a https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources , haga clic en "MongoLab" junto a su ícono, luego, en la página siguiente, haga clic en "Eliminar todas las colecciones"
  2. Vaya a https://dashboard.parse.com/apps/<APP_NAME>/settings/general donde <APP_NAME> es el nombre de su análisis aplicación
  3. Desplácese hacia abajo en la página y haga clic en "Migrar"
  4. En el modal, en el área gris (que no se parece mucho a una entrada...) ingrese el MONGOLAB_URI que tomamos nota antes
  5. Haga clic en "Comenzar la migración"

  1. Cuando finalice la migración, haga clic en "Finalizar" y luego, en la ventana emergente, haga clic en "Aceptar". Cuando finalice la migración, todos sus datos estarán en su nueva base de datos MongoDB.

  1. Por ahora, su panel de control de Parse seguirá mostrando los datos que ahora se encuentran en la nueva base de datos. Para probar todo, vuelva a la prueba jsFiddle que usamos antes y ejecútela nuevamente. Ahora, vaya a su tablero de Parse y debería ver la clase y la fila recién agregadas. Nota que cuando usé el nuevo tablero Parse, pude ver la cantidad de filas pero el área de la fila estaba en blanco. Volví al antiguo panel de control de Parse y pude ver todo bien.