2012-10-22 14 views
7

Ho scritto un'applicazione di base node.js e sono riuscito a distribuirlo su Heroku senza alcun problema. Ho creato il mio pacchetto package.json e Procfile, tuttavia dai log vedo che non ci sono processi in esecuzione, quindi non è possibile ottenere alcuna risposta. Quale potrebbe essere il problema?Node.js: semplice app non funzionante su Heroku

PS: Non voglio utilizzare il espresso quadro

My Code:

var http = require("http"); 

http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 

    console.log("I am working"); 
}).listen(8888); 

mio package.json:

{ 
    "name": "node-example", 
    "version": "0.0.1", 
    "dependencies": { 
    }, 
    "engines": { 
    "node": "0.8.x", 
    "npm": "1.1.x" 
    } 
} 

Registri:

2012-10-22T12:36:58+00:00 heroku[slugc]: Slug compilation started 
2012-10-22T12:37:07+00:00 heroku[slugc]: Slug compilation finished 
2012-10-22T12:40:55+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 
2012-10-22T12:50:44+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 

risposta

33

Hai ridimensionato l'app di heroku?

$ heroku ps:scale web=1 

Questo è un passaggio obbligatorio. Il numero 1 indica il numero di processi che si desidera generare per la propria app.

+1

Puoi anche farlo nell'Heroku Dashboard andando alla pagina delle risorse dell'app e assicurandoti di avere almeno 1 Dyno allocato. (Inoltre, il problema di ascolto delle porte viene spesso dopo: http://stackoverflow.com/a/13013189/1310765). – purgatory101

+1

Questo ha appena finito 30 minuti di frustrazione. Grazie :) – connorbode

+0

Questo non ha funzionato per me, ma ha fatto un altro passo, vedi http://stackoverflow.com/a/34749183/537998 –

19

Cambia la porta

da

.listen(8888) 

a

.listen(process.env.PORT || 8888) 
+0

Eseguo il nodo piattaforma a Heroku. Ironia della sorte, questa risposta più bassa è corretta. La risposta accettata e più votata sarà di aiuto solo se hai precedentemente ridimensionato la tua procedura web a zero e non risolverà il problema a meno che anche questa risposta non venga seguita. – hunterloftis

2

Cosa c'è dentro la tua Procfile? Corrisponde al nome della tua app?

$ ls 
app.js Procfile 
$ cat Procfile 
web: node app$ 
$