Hva er Node.JS og hvorfor skal jeg bryr meg? [Webutvikling]
JavaScript er et bare programmeringsspråk for klientsiden som kjører i nettleseren, ikke sant? Ikke nå lenger. Node.js er en måte å kjøre JavaScript på serveren på; men det er så mye mer også. Hvis du er interessert i webutvikling, bør du virkelig finne ut litt om Node og hvorfor det gjør bølger i samfunnet.
Hva er Node.js?
Node er et grensesnitt til V8 JavaScript-kjøretiden - den super-raske JavaScript-tolken som kjører i Chrome-nettleseren. Som det skjer, kan du også laste ned V8 og legge det inn i noe. Node gjør det, for webservere. JavaScript er tross alt bare et språk - det er ingenting som sier at det ikke kunne brukes på en server, så vel som i brukerens nettleser. I en typisk LAMP-serverstabel Hvordan sette opp en Apache-webserver i tre enkle trinn Hvordan sette opp en Apache-webserver i tre enkle trinn Uansett hva årsaken er, kan du til en viss tid ønsker å få en webserver til å gå. Enten du vil gi deg ekstern tilgang til bestemte sider eller tjenester, vil du få et fellesskap ... Les mer, du har en underliggende Apache eller NGINX webserver, med PHP som kjører på toppen av det. Hver ny tilkobling til serveren gir en ny tråd, og det er veldig enkelt å raskt miste ytelse eller for et nettsted til “gå ned” - den eneste måten å støtte flere brukere på å legge til flere servere. Det skal ikke bare skje bra. Med Node er dette ikke tilfelle. Det er ingen Apache å lytte etter innkommende tilkoblinger og returnere HTTP-statuskoder - du må selv håndtere den kjerne serverarkitekturen. Heldigvis er det moduler for å gjøre dette lettere, men det kan fortsatt være litt overveldende når du starter. Resultatet er imidlertid et høy ytelse webapplikasjon.
Javascript er en begivenhetsbasert språk jQuery opplæring (del 4) - Event Lyttere jQuery opplæring (del 4) - Event Lyttere I dag skal vi sparke det opp i hakk og virkelig vise hvor jQuery skinner - hendelser. Hvis du fulgte de tidligere opplæringsprogrammene, bør du nå ha en ganske god forståelse av grunnkoden ... Les mer, slik at alt som skjer på serveren utløser en ikke-blokkerende hendelse. Hver ny forbindelse brenner et arrangement; Data som mottas fra et opplastingsskjema brenner en data-mottatt hendelse; Hvis du ber om data fra databasen, utløser en hendelse. I praksis betyr dette at et Nodes nettsted aldri vil låse opp og kan støtte tusenvis av samtidige brukere. Node.js spiller rollen som serveren - Apache - og tolker programkoden som kjøres på toppen av den. Akkurat som Apache, finnes det ulike moduler (biblioteker) som kan installeres for å legge til funksjoner og funksjonalitet - som datalager, Zip-filstøtte, Facebook-innlogging eller betalingsgateways. Selvfølgelig er det ikke så mange som for PHP, men Node er fortsatt i det tidlige stadiet, og det er et sterkt fellesskap bak det. Et kjernekonsept av Node er asynkrone funksjoner - så alt går i bakgrunnen, i utgangspunktet. Med de fleste server side scripting språk, må programmet vente mens hver funksjon fullføres før du går videre til neste. Med Knutepunkt spesifiserer du funksjoner som skal kjøres etter ferdigstillelse av noe annet, mens resten av appen din går videre. Det er et komplekst tema at jeg ikke vil gå inn i for mye dybde i dag, men en av de egenskapene som definerer Node, så det er viktig å forstå det. Nok snakk skjønt - her er en Hello World eksempel HTTP-server for å gi en rask ide om noen av disse konseptene.
var http = krever ("http"); http.createServer (funksjon (forespørsel, svar) response.writeHead (200, 'Content-Type': 'text / plain'); response.write ('Hello World!'); response.end (); ) .listen (8080); console.log ("Server kjører!");
La oss prøve å bryte det ned. Først inkluderer vi http-modulen i prosjektet. Vi lager så en server og sender inn en anonym funksjon som en parameter - denne funksjonen vil bli kalt for hver ny tilkobling som er laget. Det tar to argumenter - be om, inneholder forespørselsparametrene fra brukeren; og respons, som vi vil bruke til å sende ting tilbake. Deretter bruker vi responsobjektet til å skrive en header tilbake til brukeren med svar-HTTP-koden 200 (“ok”) og innholdstype, skriver en “Hei Verden!” melding, og avslutte svaret. Til slutt forteller vi at serveren lytter på port 8080 for innkommende forespørsler, og sender en rask melding til konsollen (kommandolinjen) for å fortelle oss at den kjører. Hvis du faktisk vil prøve dette selv, lagre koden ovenfor som test.js, last ned installasjonsprogrammet Node, og fra kommandolinjens runde -
node test.js
Åpne en nettleser og naviger til localhost: 8080 for å se testapplikasjonen din! Du bør nå ha en liten ide om hvordan denne helt asynkronen fungerer, sammen med hendelsesdrevne modeller. Hvis du er ny på JavaScript, er konseptet med å overføre funksjoner som argumenter til andre funksjoner sannsynligvis litt rart.
Hvorfor bruke Node?
For det første, for ytelse og skalerbarhet. Node er rask. Det er et ganske viktig krav når du er en oppstart som prøver å gjøre det neste store, og vil sørge for at du kan skalere raskt, takle en tilstrømning av brukere når nettstedet ditt vokser. Node er også perfekt for å tilby en RESTful API - en webtjeneste som tar noen innspillingsparametere og sender litt data tilbake - enkel dataprofilering uten stor beregning. Node kan håndtere tusenvis av disse samtidig hvor PHP bare ville kollapse. Ytelsesfordeler og skalerbarhet til side, det er en god sjanse for at du allerede vet noe JavaScript, så hvorfor bry deg om å lære et helt nytt språk som PHP? Og da - det er spenningen om å lære noe nytt og relativt ukjent. Du vet når noe nytt kommer og blir så allestedsnærværende at du angre ikke å lære det tidligere, for alltid å spille fangst? Ikke gjør det denne gangen. Node skal bli stor.
ulempene
Som de fleste nye teknologier er det ikke så lett å distribuere Node på eksisterende verter. Hvis du har en delt web hosting, kan du ikke bare laste opp en Node-app og forvente at den skal fungere. VPS og dedikerte servere er bedre posisjonert - du kan installere Node på dem. Enda enklere er å bruke en skalerbar tjeneste som Heroku, som er helt fri til å utvikle nettstedet ditt - du trenger bare å betale når du trenger flere ressurser. Jeg ga et eksempel på å bruke Heroku før da vi brukte den til å lage en Facebook-fangate, men den kan også brukes til Node. På den annen side er det veldig enkelt å installere Node lokalt på Windows, Mac eller Linux PC og begynne å utvikle umiddelbart - bare gå over til Last ned Node. Det er også viktig å merke seg at Node ikke bare er en erstatning for Apache - eksisterende webapplikasjoner er ikke kompatible, og du vil jobbe effektivt fra grunnen av (selv om det er mange rammer der ute for å hjelpe deg med vanlige funksjoner). Den andre store ulempen til knutepunktet er at den fortsatt er i de tidlige utviklingsstadiene, noe som betyr at noen funksjoner sannsynligvis vil endre seg etter hvert som utviklingen utvikler seg. Faktisk, hvis du ser på dokumentasjonen, inneholder den en stabilitetsindeks, som viser hvordan risikofylt bruk av hver funksjon er for tiden. Du vet - det har aldri vært en mer spennende tid å være en webutvikler. Med åpne webtjenester og datautveksling er det enklere enn noensinne å lage noe Rått. Tenker du på å lære Node? Flink. Gå videre og gjør neste Twitter! Du vil sannsynligvis også ha en god jording av JavaScript jQuery-biblioteket jQuery Tutorial - Komme i gang: Grunnleggende og Selectors jQuery-veiledning - Komme i gang: Grunnleggende og valgorer I forrige uke snakket jeg om hvor viktig jQuery er for enhver moderne webutvikler og hvorfor det er Rått. Denne uken, jeg tror det er på tide at vi fikk våre hender skitne med noe kode og lærte hvordan ... Les mer for frontenden.
Utforsk mer om: JavaScript, Programmering, Webdesign, Webutvikling.