Ön egy PHP-fejlesztő. Értem én. Én is. Az én utam a PHP-hez nem a szokásos úton vezetett, amelyet a legtöbb PHP-fejlesztő bejár a tökéletes programozási nyelv keresése során. Eredetileg Java fejlesztőként kezdtem, és nagyjából 10 évig éltem azon a földön. Egyike voltam azoknak a megrögzött Java-fejlesztőknek, akik, amikor a PHP-t bevezették egy beszélgetésbe, elkezdtem olyan dolgokról beszélni, mint vállalkozás, skálázhatóság és egyéb ostobaságok.
Egy nyílt forráskódú projekten kezdtem el dolgozni, amelynek egy közösségi webes front-endre volt szüksége, körülbelül 5 évvel ezelőtt, és a csapatnak programozási nyelvet kellett választania az oldalhoz. Megvizsgáltam a Javát és a legtöbb más nyelvet, de több okból is a PHP mellett döntöttem. Nehéz volt lenyelni a büszkeségemet és elkezdeni PHP nyelven kódolni, de ami a projekt során történt, az maga volt a csoda. Beleszerettem a nyelvbe, és elkezdtem használni annyi projektben, amennyit csak találtam, miközben a Java gyökereimet a porban hagytam. A PHP jól szolgált engem az elmúlt 5 évben, de még mindig kerestem azt a szent grált, egy olyan programozási nyelvet, amely gyorsan fejleszthető, vállalati támogatással rendelkezik, teljesítőképes és skálázható, miközben egy erős fejlesztői közösséget is biztosít. Úgy gondolom, hogy a Node.js kielégíti az összes követelményemet, miközben egy gyorsan növekvő és fejlődő nyelv.
Az első dolog, amit meg kell értenie, hogy a Node.js nem csak a hipszter fejlesztőknek vagy a korai alkalmazóknak való. Napjainkban az internet néhány legforgalmasabb weboldala használja, és folyamatosan hódítja meg a fejlesztők szívét és elméjét. Valóban eljutott arra a pontra, hogy a legbonyolultabb rendszerek esetében is megbízhat benne.
Node.js is JavaScript##
Ha azt gondolja, hogy egy teljesen új nyelvet kell megtanulnia ahhoz, hogy a Node.js-szel produktív legyen, akkor valószínűleg téved. A legtöbb fejlesztő már ismeri a JavaScriptet, és ez az a nyelv és szemantika, amellyel a Node.js-ben való kódolás során dolgozni fog. Valójában a Red Monk által nemrég közzétett cikk, amely megpróbálja értelmezni a github-projekteket, hogy meghatározza a legnépszerűbb nyelveket, a JavaScriptet tartja a királynak. Az első három nyelv a következő:
- JavaScript
- Java
- PHP
A JavaScript népszerűségét és iparágunkban való széles körű elterjedtségét tekintve, ha még nem ismered, valószínűleg itt az ideje, hogy lecsatlakozz és elkezdd tanulni.
Ha a Node.js csak JavaScriptet használ, mi is ez pontosan?##
Dióhéjban összefoglalva, a Node.js egy platform a szerveroldali tevékenységekhez. A Javascript programozási nyelvet használja, és könyvtárak sokasága érhető el npm modulokként. Ezekre az npm modulokra úgy is gondolhatsz, mint könyvtárfüggőségekre, amelyeket a Composerrel kielégíthetsz, ha PHP földről érkeztél. Valójában a PHP alapértelmezett függőségkezelő rendszerét (Composer) a hivatalos oldal szerint a Node.js ihlette. Jó eséllyel, ha szüksége van egy kis funkcionalitásra, és nincs kedve az összes kódot maga megírni, van olyan npm modul, amely már biztosítja a keresett funkciókat.
A Node-alkalmazásokat általában akkor valósítják meg, amikor maximalizálni kell a hatékonyságot a nem blokkoló I/O és az aszinkron események felhasználásával. A PHP-fejlesztők számára egy buktató, amit tudniuk kell, hogy a Node.js alkalmazások egyetlen szálban futnak. A backend Node.js kód azonban több szálat használ az olyan műveletekhez, mint a hálózati és fájlelérés. Ezt figyelembe véve a Node tökéletes olyan alkalmazásokhoz, ahol közel valós idejű élményre van szükség.
Kezdés egy mintaprojekttel##
Ez a blogbejegyzés hátralévő részében megmutatom, hogyan lehet a Node.js-t PHP-háttérből kiindulva elsajátítani. A mintaalkalmazás, amelyet meg fogunk írni, egy egyszerű backend szolgáltatás, amely minden Walmart áruház helyét megadja. Azért választottam a Walmartot ehhez a példához, mert egész egyszerűen ez az összes áruház szent grálja. Ha a Walmart nem rendelkezik vele, akkor nincs is rá szükséged.
A blogbejegyzés végére látni fogod, hogy milyen gyorsan és egyszerűen létrehozható egy REST alapú API a Node.js segítségével, amelyet a népszerű MongoDB adatbázis táplál. Azért választottam ezt a REST-alapú példát, mert egy backend API létrehozása gyorsan elterjedt felhasználási esetté vált a legtöbb modern alkalmazásban.
Eredetileg azt terveztem, hogy ugyanazt az alkalmazást PHP-ben és Node.js-ben is létrehozom, hogy megkönnyítsem az átállást, de ahhoz, hogy a REST-alapú szolgáltatások PHP-ben történő létrehozásának összes különböző keretrendszerét és módját lefedjem, ez egy egész könyvet indokolna, és egyszerűen nem fér bele egyetlen blogbejegyzésbe. Ezután arra gondoltam, hogy csak a Laravel keretrendszert használjam, mivel annak népszerűsége folyamatosan növekszik. Ezzel azonban még mindig csak a PHP-fejlesztők negyedét érném el. Nekem személy szerint a CodeIgniter a kedvenc keretrendszerem, de ez gyorsan veszít teret, és már csak a PHP-fejlesztők kevesebb mint 8%-át képviseli. A Sitepoint nemrég közzétett egy cikket, amely éppen ezt a dolgot tárgyalja, és az alábbi ábrán mutatja be a 2014-re legígéretesebbnek tűnő keretrendszereket.
Az adatbázis-kapcsolatok beállításának és a REST-szolgáltatások létrehozásának hatalmas különbségei miatt az egyes keretrendszerek esetében feltételezem, hogy Ön tudja, hogyan kell ezt elvégezni a PHP keretrendszeréhez, és ehelyett csak a Node.js kódra.
Node.js alkalmazásunk létrehozása##
A bejegyzés további részében a StrongLoop LoopBack API keretrendszerének használatával fogjuk létrehozni a Walmart lokátor alkalmazást. További bónuszként végigvezetem a Node.js telepítését OSX rendszeren. Szóval fogd a kávét, dőlj hátra, lazíts, és lássunk munkához.
1. lépés: A Node.js telepítése##
A Node.js telepítésének legegyszerűbb módja a legtöbb operációs rendszerhez elérhető bináris csomagok egyike. Mutasson a böngészőjével az alábbi URL-re, és töltse le az operációs rendszerének megfelelőt:
http://nodejs.org/download/
Az oldal betöltése után a következőt kell látnia:
Ha Mac OSX-et használ, kattintson az univerzális .pkg fájlra. Ez elmenti a telepítőprogramot a helyi számítógépére. A fájl letöltése után indítsa el a telepítőprogramot a letöltött .pkg fájlra duplán kattintva, és megjelenik a telepítési párbeszédpanel:
Végezze el a telepítési folyamatot az összes alapértelmezett beállítás használatával, és végül a sikeres telepítés után kattintson a bezárás gombra a programból való kilépéshez. Elég egyszerű, nem?
2. lépés: LoopBack telepítése az NPM-mel
Most, hogy a Node.js telepítve van a helyi rendszerünkön, telepíteni akarjuk a StrongLoop által biztosított LoopBack csomagokat. A LoopBack egy nyílt forráskódú API-keretrendszer, amely olyan funkciókat biztosít, amelyek megkönnyítik az életünket, amikor elkezdjük megtanulni, hogyan írjunk és telepítsünk Node.js-ben írt szoftvereket.
A LoopBack telepítéséhez az npm parancsot fogjuk használni, amely a Node.js alapdisztribúció része. Az NPM a hivatalos csomagkezelő olyan könyvtárak vagy modulok telepítéséhez, amelyektől az alkalmazások függnek. Tekintettel arra, hogy ez a bejegyzés PHP-fejlesztőknek íródott, az NPM moduljairól könnyen el lehet gondolkodni, ha a Composerhez viszonyítjuk. A Composer függőségi rendszerének használatával a fejlesztők képesek a függőségeket a composer.json fájljukban megadni. Miután a csomagokat meghatározták a composer.json fájlban, a PHP-fejlesztőnek egyszerűen ki kell adnia a telepítési parancsot, amelynek a következőhöz hasonlónak kell lennie:
$ php composer.phar install
Az NPM modulok ugyanígy működik, és a package.json fájlt használja arra, hogy egy adott alkalmazás függőségeit meg lehessen adni. A függőségeket a parancssorból is telepítheted, hogy elérhetővé tedd őket a helyi rendszereden. Ne aggódjon, ha ezt még nem érti, mivel a package.json fájlról egy későbbi lépésben részletesebben is szó lesz.
A LoopBack telepítéséhez egyetlen parancsot adhatunk ki, amely letölti és telepíti az összes függőséget, amelyre szükségünk van a csomaghoz. Nyissa meg a terminál ablakot, és adja ki a következő parancsot:
$ npm install -g strongloop
Figyelem: Lehet, hogy a telepítéstől függően sudo-t kell használnia
Mi történt? Megmondtuk az npm-nek, hogy telepíteni akarjuk a strongloop csomagot, miközben megadjuk a -g
opciót is. A -g
opcióval a csomag globális csomagként elérhetővé válik a rendszerben bárki számára, és minden alkalmazás számára elérhetővé válik. A fenti parancs futtatása után az NPM letölti a csomagot, valamint a szükséges függőségeket. A rendszerünk sebességétől függően ez néhány percet vehet igénybe.
3. lépés: Az alkalmazásunk létrehozása##
A LoopBack API segítségével egy alkalmazás létrehozása nagyon egyszerű és egyszerű. Egyszerűen nyissuk meg a terminál ablakot, és adjuk ki a következő parancsot egy új locatewalmart
nevű alkalmazás létrehozásához.
$ slc loopback _-----_ | | .--------------------------. |--(o)--| | Let's create a LoopBack | `---------´ | application! | ( _´U`_ ) '--------------------------' /___A___\ | ~ | __'.___.'__ ´ ` |° ´ Y ` Enter a directory name where to create the project: locatewalmart create locatewalmart/ info change the working directory to locatewalmart
A slc
segédprogram most létrehoz egy új LoopBack alapú projektet locatewalmart
néven, és konfigurálja a projektet. Amikor az alkalmazás nevére kérdez rá, megtarthatjuk az alapértelmezettet.
What's the name of your application? locatewalmart
A fenti parancs futtatása után létrejön egy új könyvtár a projekt számára az alkalmazás számára. Váltsunk az alkalmazás könyvtárába a cd paranccsal:
$ cd locatewalmart
Most, hogy elkészült az alkalmazásunk, szeretnénk hozzáadni a MongoDB támogatását, mint adatforrást a loopbackhez.
4. lépés: Adatforrásunk definiálása##
A MongoDB-vel való kommunikációhoz hozzá kell adnunk egy adatforrást az alkalmazásunkhoz. Ezt a:
$ slc loopback:datasource mymongo Enter the data-source name: mymongo Select the connector for mymongo:PostgreSQL (supported by StrongLoop)Oracle (supported by StrongLoop)Microsoft SQL (supported by StrongLoop)❯ MongoDB (supported by StrongLoop)SOAP webservices (supported by StrongLoop)REST services (supported by StrongLoop)Neo4j (provided by community)(Move up and down to reveal more choices)
5. lépés: A valódi adatforrásra mutatás##
A MongoDB-vel való kommunikációhoz az adatforrást a tényleges MongoDB példányra kell mutatnunk. A LoopBack az összes adatforrás konfigurációt az datasource.json
fájlban határozza meg, amely az alkalmazások root/server
könyvtárában található. Nyissa meg ezt a fájlt, és adjon hozzá egy adatforrást a MongoDB számára az alábbi kódnak megfelelően:
{ "db": { "name": "db", "connector": "memory" }, "mymongo": { "name": "mymongo", "connector": "mongodb" "url": "mongodb://localhost:27017/locatewalmart" }}
Megjegyzés: Ügyeljen arra, hogy a MongoDB adatbázisának helyes kapcsolati URL-jét adja meg. Ehhez a példához egy locatewalmart nevű, helyben létrehozott adatbázisom van, amelyet az adatforrásként szeretnék használni.
Most, hogy definiáltuk az adatbázisunkat, van néhány extra dolog, amit meg kell tennünk. Először is meg kell adnunk, hogy alkalmazásunk függ a loopback-connector-mongodb
csomagtól. A függőség megadásához módosítjuk a package.json fájlt, ami hasonló a composer.json
fájl szerkesztéséhez a PHP-ban. Nyissuk meg az alkalmazásunk gyökérkönyvtárában található package.json
fájlt, és adjuk hozzá a loopback-connector-mongodb
-et a függőségi szakaszhoz. Ezután futtathatod az npm install.
Változatosan egyszerűen futtathatod:
$ npm install loopback-connector-mongodb --save
Ez automatikusan frissíti a package.json
-t. A szakasznak a következőképpen kell kinéznie:
"dependencies": { "compression": "^1.0.3", "errorhandler": "^1.1.1", "loopback": "^2.0.0", "loopback-boot": "^2.0.0", "loopback-connector-mongodb": "^1.4.1", "loopback-datasource-juggler": "^2.0.0", "serve-favicon": "^2.0.1" }
6. lépés: Az adatok importálása a MongoDB-be##
Most, hogy megvan az adatforrásunk konfigurálva, be kell töltenünk az adathalmazt a MongoDB adatbázisunkba.
Az első dolog, amit tenni szeretnénk, hogy letöltünk egy JSON fájlt, amely tartalmazza az összes adatot, amit vissza szeretnénk adni. Ezt a következő URL címen szerezhetjük be:
https://dl.dropboxusercontent.com/u/72466829/walmart.json
Mihelyt letöltöttük az adathalmazt, egyszerűen importáljuk az adatbázisunkba a mongoimport paranccsal az alábbiak szerint:
$ mongoimport --jsonArray -d locatewalmart -c store --type json --file walmart.json -h yourMongoHost --port yourMongoPort -u yourMongoUsername -p yourMongoPassword
A következő eredményt kell látnunk:
connected to: 127.0.0.12014-08-17T13:07:26.301-0400 check 9 31762014-08-17T13:07:26.305-0400 imported 3176 objects
7. lépés: A Store modellünk létrehozása##
A modellre ugyanúgy gondolhatunk, mint a PHP földjén a modellekre, ha MVC keretrendszert használunk. Ez egy Object reprezentációja, ami ebben az esetben egy Walmart áruház. A LoopBack kényelmes módot biztosít a modellobjektumok létrehozására a parancssor segítségével. Nyisd meg a terminál ablakot, menj a projekt mappába, és add ki a következő parancsot:
$ slc loopback:model
Ezzel elindul egy interaktív munkamenet, ahol meghatározhatod a modellt. Az első dolog, amit kérdezni fog, az az adatforrás, amelyhez a modellt társítani szeretné. Mi a korábban létrehozott mymongo adatforrást fogjuk kiválasztani. Ezután megkérdezi a modell többes számú nevét. Használjuk az alapértelmezettet (stores), és nyomjuk meg az enter billentyűt.
Enter the model name: store Select the data-source to attach store to:db (memory)❯ mymongo (mongodb) Expose store via the REST API? Yes Custom plural form (used to build REST URL):
Amint lenyomjuk az enter billentyűt, a rendszer felszólít bennünket a store modell tulajdonságainak megadására. Ezt úgy is elképzelhetjük, mint var(s)-okat, amelyeket a PHP-ben egy osztályon definiálunk.
Enter an empty property name when done. Property name:
A tulajdonságok, amelyeket hozzá szeretnénk adni, a bolt típusa, a nyitva tartás időpontja, a szélességi és a hosszúsági fok.
Property name: opendate invoke loopback:property
Amint lenyomjuk az enter billentyűt, megkérdezzük, hogy az egyes megadott tulajdonságokhoz milyen adattípust adjunk meg. Az első elem az opendate lesz, és ki akarjuk választani, hogy dátum típusú legyen. Válasszuk ki a dátumot, és nyomjuk meg az enter billentyűt.
Property type: string number boolean object array❯ date buffer geopoint (other)
Ezután megkérdezzük, hogy ezt a tulajdonságot a séma érvényesítéséhez szükséges tulajdonságként szeretnénk-e használni. Beírjuk, hogy “igen”.
Required? (y/N) : y
Ezután megkérdezi az adattípust az egyes fennmaradó tulajdonságokhoz. Adja meg a következő válaszokat:
Property name: type_store invoke loopback:property Property type: (Use arrow keys)❯ string number boolean object array date buffer geopoint (other) Required? (y/N) : yLet's add another store property.Enter an empty property name when done. Property name: latitude invoke loopback:property Property type: (Use arrow keys)❯ string number boolean object array date buffer geopoint (other) Required? (y/N) : yLet's add another store property.Enter an empty property name when done. Property name: longitude invoke loopback:property Property type: (Use arrow keys)❯ string number boolean object array date buffer geopoint (other) Required? (y/N) : y
Írd be az “yes”-t, és nyomd meg az enter billentyűt.
Gratulálunk! most hozta létre első modellobjektumát a LoopBack használatával a Node.js-szel együtt. Ahhoz, hogy lássa, mi is jött létre valójában a takarás alatt, nyissa meg az store.json
fájlt, amely az alkalmazás könyvtárának root/common/models
könyvtárában található. Keresse meg a stores bejegyzést, amely a következőképpen fog kinézni:
{ "name": "store", "base": "PersistedModel", "properties": { "opendate": { "type": "date", "required": true }, "type_store": { "type": "string", "required": true }, "latitude": { "type": "string", "required": true }, "longitude": { "type": "string", "required": true } }, "validations": , "relations": {}, "acls": , "methods": }
Amint láthatja, létrehoztunk egy modellt, és az általunk meghatározott tulajdonságokat hozzárendeltük a store modellhez. A public mező azt adja meg, hogy ezt a modellt egy REST webszolgáltatáson keresztül akarjuk a világ elé tárni.
A modell leképezése az adatforráshoz az alkalmazás gyökér/szerver mappája alatt található model-config.json
-ben van definiálva. Az adatforrás mező határozza meg azt az adatforrást, amelyet ez a modell a CRUD műveletekhez használni fog.
"store": { "dataSource": "mymongo", "public": true }
8. lépés: A REST-alapú API tesztelése##
Kitalálod? Most hozta létre az első REST alapú webszolgáltatást a Node.js segítségével. Ez nem is volt olyan rossz, ugye? Ellenőrizzük le úgy, hogy a böngészőnket az imént létrehozott alkalmazásunkra irányítjuk. Ezt a következő URL-címre kattintva teheted meg:
http://0.0.0.0:3000/api/stores/
A következő képen látható módon megjelenik előtted az összes Walmart áruház JSON reprezentációja, amelyeket az adatbázisba importáltunk:
A StrongLoop Explorer használata##
Hát, ez nagyszerű. Van egy REST végpontunk, amely visszaadja az adatbázisban lévő összes Walmart-tárolót, de úgy tűnik, hogy a dolgok még mindig hiányoznak egy kicsit, mivel nincs kezelőfelületünk az adatokkal való munkához vagy annak ellenőrzéséhez, hogy az összes CRUD művelet működik-e. Szerencsére a StrongLoop biztosít egy kényelmes böngészőt, amellyel felfedezhetjük az alkalmazásunk összes végpontját. Ennek kipróbálásához nyissa meg a böngészőt, és lépjen a következő URL-címre:
http://0.0.0.0:3000/explorer/
Az Explorer oldal betöltése után bontsa ki a stores
API-t, hogy láthassa az összes elérhető műveletet, amely a modellobjektumon engedélyezett. Ez a következő képen látható:
Az Explorerrel végezhető műveletek példájaként bontsa ki a /stores/findOne
API-t, és kattintson a Try it out!
hivatkozásra, amely lekérdezi az adatbázist, és az alábbi képen látható módon visszaad egy rekordot:
A dolgok egy kicsit továbblépve egy térképes ábrázolás hozzáadásával##
Félelmetes, létrehoztunk egy REST-alapú végpontot, amely az adatbázisunkban található összes Walmart áruház listáját adja vissza. Annak további illusztrálására, hogy milyen gyorsan lehet teljes alkalmazásokat fejleszteni a StrongLoop segítségével, hozzunk létre egy reszponzív frontendet, amely minden Walmart áruházhoz tartalmaz egy térképet gombostűkkel.
1. lépés: A nyilvános könyvtár létrehozása##
A projekt app.js fájljában megadottak szerint alapértelmezés szerint az alkalmazások gyökérkönyvtárában található nyilvános könyvtárban található összes fájl kiszolgálásra kerül a kérőnek. Ez a könyvtár azonban alapértelmezés szerint nem feltétlenül létezik, ezért létre kell hoznunk. Nyissuk meg a terminált, és váltsunk az alkalmazás gyökérkönyvtárába, majd adjuk ki a következő parancsot:
$ mkdir public
2. lépés: A reszponzív térkép létrehozása##
A következő dolog, amit meg kell tennünk, az az adatok szép ábrázolása. Mivel minden üzlet szélességi és hosszúsági fokával rendelkezünk, jó lenne ezt a tartalmat egy olyan térképpel kifejezni, amelyet a felhasználó körbehúzhat, nagyíthat és kicsinyíthet, stb. Ez a feladat valójában sokkal egyszerűbb, mint gondolnánk, ha kihasználunk néhány meglévő könyvtárat. A reszponzív nézet létrehozásának végén az eredmény a következőképpen fog kinézni:
A felhasználó ráadásul a térkép egy nagyon részletes szintjére is ráközelíthet a legközelebbi Walmart megtekintéséhez, ahogy az a következő képen látható:
Az alkalmazás webes nézetének kódja kihasználja a modellobjektumunkon meghatározott és az adatbázisba importált hosszúsági és szélességi tulajdonságokat. A népszerű Leaflet könyvtárat fogjuk használni a térkép létrehozásához és a csapok, vagyis a jelölők elhelyezéséhez a térképen.
A térkép létrehozásához hozzunk létre egy új fájlt a nyilvános könyvtárban locatewalmart.html
néven, és adjuk hozzá a következő JavaScript-kódot:
<!doctype html><html lang="en"><head> <title>Walmart Stores</title> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5.1/leaflet.css" /><!--> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5.1/leaflet.ie.css" /><!--><script src="https://code.jquery.com/jquery-2.0.0.min.js"></script><link href='http://fonts.googleapis.com/css?family=oswald' rel='stylesheet' type='text/css'><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><style type="text/css">body { padding: 0; margin: 0;}html, body, #map { height: 100%; font-family: 'oswald';}.leaflet-container .leaflet-control-zoom { margin-left: 13px; margin-top: 70px;}#map { z-index: 1;}#title { z-index: 2; position: absolute; left: 10px; }</style></head><body><h1>Walmart Stores</h1><div></div><script src="http://cdn.leafletjs.com/leaflet-0.5.1/leaflet.js"></script><script>center = new L.LatLng(39.83, -98.58);zoom = 5;var map = L.map('map').setView(center, zoom);var markerLayerGroup = L.layerGroup().addTo(map);L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {maxZoom: 18,attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(map);function getPins(e){url = "http://0.0.0.0:3000/api/stores";$.get(url, pinTheMap, "json")}function pinTheMap(data){//clear the current pinsmap.removeLayer(markerLayerGroup);//add the new pinsvar markerArray = ;var lastNumber = 0;for (var i = 0; i < data.length; i++){store = data;if(store.latitude.length > 0 && store.longitude.length>0) {markerArray.push(L.marker());}}markerLayerGroup = L.layerGroup(markerArray).addTo(map);}map.whenReady(getPins)</script></body></html>
Amint láthatjuk, a kód csak szabványos HTML és JavaScript. Az érdekes rész a getPins(e) függvény, ahol REST-hívást kezdeményezünk a korábban ebben a blogbejegyzésben létrehozott API-hoz. Ezután végigmegyünk minden egyes áruházon, és létrehozunk egy kitűzőt az egyes áruházak szélességi és hosszúsági fokai alapján. Elég ügyes, nem?
Következtetés##
Ebben a blogbejegyzésben megmutattam, hogyan hozhatunk létre egy REST-alapú webszolgáltatást, amely visszaadja az Egyesült Államokban található Walmart-üzletek listáját. Miután létrehoztuk a webszolgáltatást a Loopback segítségével, hozzáadtuk az adatok front end reprezentációját. Nagyon kevés munkával sokkal gyorsabban tudtunk egy teljesen működőképes alkalmazást fejleszteni, mint amire valaki a jelenlegi választott nyelvvel képes lenne. A Node.js és a PHP közötti néhány hasonlóságot is megvitattuk. Bár a PHP-t még mindig nagyszerű nyelvnek tartom, én személy szerint úgy találtam, hogy a Node.js nagyszerű következő nyelv, amit megtanulhatok, tekintettel a könyvtárak gazdag ökoszisztémájára és arra, hogy milyen gyorsan tudok alkalmazásokat létrehozni.
Mellékeltem egy gyors táblázatot, amelyre hivatkozhat, amikor összehasonlítja a Node.js-t a PHP-vel.
Jellemző |
PHP |
Node.js |
Nagyszerű IDE |
Igen, többszörös választás az IntelliJ, Zend Studio, Netbeans, stb |
Igen, több választási lehetőség, beleértve Eclipse, Visual Studio, Codenvy, stb |
Dependency Management |
Composer, PEAR |
NPM |
Enterprise Ready |
Yes |
Igen |
Könyvtárak nagy ökoszisztémája |
Igen, de néha nehéz megtalálni |
Igen |
Közös keretrendszerek |
CodeIgniter, CakePHP, Laravel, stb |
Express, Meteor, stb |
Adatbázis támogatás |
Igen |
Igen |
Nem-blokkoló IO |
Nem |
Igen |
Tesztelés. keretrendszerek |
Igen |
Igen |
Valós-valós idejű alkalmazások |
Igen, további folyamatokkal, például Apache WebSocket stb. |
Igen |
Beépített webszerver |
Nem, a legtöbben Apache-csal együtt használják |
Igen |
- Készen áll API-k fejlesztésére Node-ban.js-ben és összekapcsolni őket az adataiddal? Nézze meg a Node.js LoopBack keretrendszert. Egyszerű npm telepítéssel megkönnyítettük az elindulást akár helyben, akár a kedvenc felhőjén.