Alap NodeJS szerver a Heroku-n

Ebben a blogbejegyzésben megmutatom, hogy hogyan készíthetsz el egy alap (default) Node.JS szervert a Herokun-n. Illetve a szerver környezeti változók használatát is bemutatom.

De először röviden leírom, hogy mi az a Heroku, azok számára, akik nem ismerik.
A Heroku egy felhőplatform, amely lehetővé teszi különböző webalkalmazások futtatását és ezek számára szerver infrastruktúrát biztosítson.

Először is hozzunk létre a Githubon egy repo-t. Innen lehet majd feltölteni a Node.JS szerverfájlokat a Herokura.

A package.json fájlba beírhatjuk a webalkalmazásunk nevét, leírását, verziószámát és akár függőségeket adhatunk majd a Node.JS alkalmazásunkhoz.
A scripts.start-al hivatkozhatunk a szerverünk alapértelmezett fájljára.

A Heroku a futáshoz megkövetel egy Procfile-t is a képen látható sorral. Hozzuk ezt is létre a Git-en.

Írjuk meg a Node.JS szerverfájl, úgy, ahogy az localhost-on történő használat esetén is szeretnénk tenni, benne a legfontosabb adatokkal, mint a működési port.

Látogassunk el a Heroku.com oldalra és regisztráljunk, ha még nem tettük volna.
Az adminisztrátori felületen a New opciót használva hozhatunk létre webalkalmazást egyedi elnevezéssel. Akár saját domaint is hozzáadhatunk. Ingyenes csomagban 5 appot tudunk létrehozni.

Kiválaszthatjuk a szervert, hogy az alkalmazásunk melyik régióban működjön. Célszerű azt a régiót használni, ahonnan az alkalmazásunkat a legtöbben el szeretnék érni.

Ha létrehoztuk az alkalmazásunkat, kattintsunk rá, majd a settings rész alatt adjuk hozzá a build-pack-et, amivel használni szeretnénk.
A képen látható, hogy Node.JS mellett PHP, Java, Python, Ruby, Go és pár egyéb pack is használható.
Nekünk most a Node.JS kell.

A fiókbeállításpk alatt kapcsoljuk hozzá a Github fiókunkat a Herokuhoz.

Ismét az applikácóra kattintva válasszuk a "Deploy" lehetőséget.
Deploy Method legyen a Github. A Connect to Github résznél megkereshetjük a repo-t, amit fel szeretnénk tölteni a Herokura. Itt válasszuk azt a repo nevet, amiben a fent ismertetett package.json, Procfile és index.js fájlokat létrehoztuk.

Válasszuk ki, hogy melyik branch-et szeretnénk hozzáadni (alapértelmezetten a master vagy main szokott lenni). Kattintsunk a Deploy Branch gombra.
A fentebb található Enable Automatic Deploys gombbal automatizálhatjuk is a folyamatot.

Ezt látjuk ha elindult a deploy. Ez egy kis időt vesz igénybe. Ha a Build succeeded feliratot látjuk a logokban, akkor már a finishben vagyunk.

Kattintsunk a View Deploy vagy az Open App gombokra az alkalmazásunk megnyitásához. Ha mindent jól csináltunk, akkor ez a Hello World felirat fogad minket.

Settings->Config Vars alatt úgynevezett szerverkörnyezeti változókat adhatunk az alkalmazásunkhoz.
Ide olyan szenzitív adatokat célszerű megadni, amit a gitre nem tennénk ki. Például egy adatbázishoz szükséges kapcsolódási adatok, jelszavak, tokenek.

A Node.JS esetén a process.env.variablename -el tudunk hivatkozni az egyes változókra. Jelen esetben úgy alakítottam át a kódot,hogy az ownvar nevű környezeti változóm értékét jelenítse meg.

Az alkalmazásunkat újra Deploy-olva és frissítve a böngészőablakot már megjelenik a változtatás.

A NodeJS-ben consol-ozott logok nem a büngésző devtools-ában jelennek meg, hanem a szerver oldali naplófájlban. A Herokuban ez a napló More gomb lenyíló menüjében érhető el.

A Devtools-on csak a Node.JS által generált HTML kimenetet láthatjuk.

A bejegyzésben bemutatott repot itt éred el. Ha nem szeretnél kódolni, csak gyorsan kipróbálnád, akkor csak klónozd le és hozzákapcsolva a Heroku alkalmazásodhoz, máris használhatod és kedvedre változtathatod.
[link]

Ajánlom figyelmedbe még [Facebook csoportunkat] [Youtube csatornánkat] és [Discord szerverünket] továbbá van webfejlesztéssel foglalkozó Messenger csoportunk is.

Hirdetés

3 pénzügyi döntés, amit minden kisvállalkozónak érdemes átgondolnia az év végéig

PR Ahogy az év vége közeledik, itt az ideje, hogy egy pillanatra megálljunk és áttekintsük vállalkozásunk pénzügyi helyzetét. Ne hagyjuk, hogy az év utolsó hónapjai elússzanak a sürgető feladatok és elfeledett határidők között!

Tovább a fórumba.