2016-03-04 16 views
8

Sto cercando di capire il nuovo server di analisi e ho implementato su Heroku. Questo è andato liscio, ma quello che sto combattendo è capire come scrivere codice lato server (codice cloud). Ho letto molte volte l'esempio del server di analisi, quindi mi manca qualcosa ma non sono molto chiaro se dovrei usare Express per qualcosa, o come inizierò a includere i miei file con codice Cloud. Qualsiasi aiuto è molto apprezzato.Utilizzo del codice cloud con il server di analisi e Heroku

UPDATE:

ho trovato la cartella di cloud Stavo solo cercando nel posto sbagliato. L'ho spostato e index.js nella mia cartella app sul desktop. Ho modificato il codice predefinito in main.js nel mio codice personalizzato. Ho impostato index.js con le mie informazioni sulle app. Il problema ora è quando eseguo l'app e provo a richiamare le funzioni del codice cloud. Ricevo la funzione di errore non valida.

risposta

8

Se si ha un esempio di server di analisi in esecuzione su heroku, ci si trova al 90%. Basta aprire il file cloud/main.js e iniziare ad aggiungere il tuo codice cloud. Ci dovrebbe essere una funzione Hello Cloud come esempio.

Per utilizzare i moduli/i file di codice cloud già creati, è possibile richiederli come si è fatto in precedenza su parse.com. L'unica differenza è che il percorso ora dovrebbe essere relativo anziché assoluto. Ad esempio, require('cloud/cloudFunctions'); dovrebbe essere require('./cloudFunctions'); se nella directory cloud era presente un modulo chiamato cloudFunctions.js.

Codice cloud funziona in modo simile a come è stato eseguito su parse.com e non si dovrebbe pensare troppo a expressjs per applicazioni semplici. Detto questo, il server di analisi sta usando expressjs quindi sì lo stai usando.

Il server di analisi è semplicemente un altro modulo di nodo simile alle altre migliaia disponibili. Se non si ha esperienza precedente con nodejs, l'esecuzione del server di analisi può sembrare complicata. Pertanto consiglierei di leggere le basi di nodejs prima di una migrazione completa.

+0

Grazie per l'ottima risposta! Ho ancora alcune domande. Ho usato il pulsante "Deploy to Heroku" e non ho un file main.js. Potresti indirizzarmi verso il modo corretto di implementare in heroku che includa il file main.js? Leggerò sicuramente su nodejs. – m1234

+1

Aha! Hai eseguito 'heroku git: clone -a yourAppName' per ottenere i tuoi file localmente dopo aver usato il pulsante deploy? Se è così, dovresti avere una directory cloud con un file main.js? Per continuare a fare aggiornamenti puoi leggere la distribuzione su heroku qui https://devcenter.heroku.com/articles/deploying-nodejs –

+0

Grazie!Sì, ho fatto ma dov'è il file main.js suposed per apparire? Perché non sono riuscito a trovarlo. – m1234

1

Sto utilizzando lo stack Bitnami su un'istanza di Google Compute Engine e ho riscontrato un problema simile al tuo. Per risolverlo, accedi alla cartella in cui si trova il tuo file server.js e crea una cartella denominata "cloud". Quindi creare il file main.js all'interno della cartella nuvola con il seguente contenuto:

Parse.Cloud.define('hello', function(req, res) { 
    res.success('Hi'); 
}); 

Ora aprire il file server.js e trovare la riga che contiene il percorso del file di codice cloud. Cambiarlo per puntare a voi main.js file in questo modo:

server.js config file

Questa potrebbe essere una qualsiasi cartella arbitraria di tua scelta. Ora basta riavviare il server di analisi e chiamare la funzione nuvola:

String result = ParseCloud.callFunction("hello", new HashMap<>()); 

questo è con il Java SDK, ma non dovrebbe essere molto diverso. Il risultato variabile sarà uguale a "Ciao" se hai utilizzato la funzione dall'alto.

+0

Sto anche usando lo Stack Bitnami, ma non appena cambio il parametro cloud da ./node_modules/parse-server/lib/cloud-code/Parse.Cloud.js a ./cloud/main.js il mio sito Web smette di funzionare - Cerco di aggiungere il mio codice cloud al file Parse.Cloud.js anche se smette di funzionare. Ho bisogno di migrare il mio codice cloud sul server, come faccio? Grazie. – Meeyam

+0

@Meeyam Controllare i log di analisi e pubblicare eventuali messaggi di errore. Ho trovato che molti errori possono essere risolti facilmente in questo modo. Quando interrompi il server, ti dirà dove si trova il registro. – fusion44