2017-11-13 2 views
0

Ich habe ein node.js + Express Projekt, an dem ich gearbeitet habe, und es funktioniert, wenn ich es auf meinem Rechner starte. Ich habe Port 4200 für meine Express-API-Set, mitnode.js Projekt funktioniert auf lokalem Rechner, Probleme bei Heroku

var port = 4200; 

in app.js

greife ich auf die API axios in Reaktion mit:

axios.get('https://localhost:4200/posts ... etc 

Das alles funktioniert, wenn ich es laufen auf meinem Computer, aber wenn ich dies mit Heroku versetze, erhalte ich diesen Fehler:

GET https://localhost:4200/posts net::ERR_CONNECTION_REFUSED

Error: Network Error at createError (createError.js:16) at XMLHttpRequest.handleError (xhr.js:87)

Wie behebe ich das?

+3

Ich denke, Sie sollten versuchen, ändern https: // localhost: 4200/Beiträge zu heroku Domain, die Sie wie XXXXX.herokuapp.com –

+0

Ich habe versucht, jedes Vorkommen von localhost: 4200 mit XXXXX.herokuapp.com zu ersetzen, aber ich bekomme 404 wird nicht gefunden, wenn ich versuche, jetzt auf die API zuzugreifen. – WhoopsBing

Antwort

0

Es zwei Sache sind, würde ich hervorheben möchte:

1) von https://devcenter.heroku.com/articles/deploying-nodejs#specifying-a-start-script

The command in a web process type must bind to the port number specified in the PORT environment variable. If it does not, the dyno will not start.

So Zitiert, was Sie sollten

var port = process.env.PORT || 4200; 

Jetzt ist tun bei der Arbeit an Der lokale Systemport 4200 wird verwendet und auf dem von der Umgebung va zugewiesenen Heroku-Port bereitgestellt riable wird verwendet.

2) Von Ihrer Frage sagen Sie, dass Sie axios.get('https://localhost:4200/posts ... etc verwenden. Wenn die App bereitgestellt wird, wie soll sie localhost verwenden?

Ändern Sie localhost zu der Domäne, die Sie beim Erstellen der App auf Heroku erhalten.

Verwandte Themen