Ero sivun ”Node.js” versioiden välillä

Wikipediasta
Siirry navigaatioon Siirry hakuun
[katsottu versio][odottaa arviointia]
Poistettu sisältö Lisätty sisältö
Ei muokkausyhteenvetoa
Lisätty esimerkkejä
 
(Yhtä välissä olevaa versiota samalta käyttäjältä ei näytetä)
Rivi 23: Rivi 23:
}}
}}


'''Node.js''' on [[Avoin lähdekoodi|avoimen lähdekoodin]] [[alustariippumaton]] ajoympäristö [[JavaScript]]-koodin suorittamiseen [[Palvelin|palvelimella]].<ref name="nodejs"/>
'''Node.js''' on [[Avoin lähdekoodi|avoimen lähdekoodin]] [[alustariippumaton]] ajoympäristö [[JavaScript]]-[[Lähdekoodi|koodin]] suorittamiseen [[Palvelin|palvelimella]].<ref name="nodejs"/>
Perinteisesti JavaScriptiä on pääsääntöisesti käytetty siten, että JavaScript-koodi on ollut upotettuna [[verkkosivu]]n [[HTML]]-koodiin ja se on suoritettu käyttäjän laitteessa, [[verkkoselain|verkkoselaimen]] [[JavaScript-moottori]]lla.
Perinteisesti JavaScriptiä on pääsääntöisesti käytetty siten, että JavaScript-koodi on ollut upotettuna [[verkkosivu]]n [[HTML]]-koodiin ja se on suoritettu käyttäjän laitteessa, [[verkkoselain|verkkoselaimen]] [[JavaScript-moottori]]lla.
Node.js:ssa koodi suoritetaan palvelimella, jossa voidaan generoida verkkosivuja, jotka lähetetään käyttäjälle. Node.js käyttää JavaScriptin suorittamiseen [[V8 (JavaScript-moottori)|V8-JavaScript-moottori]]a.<ref name="nodejs"/>
Node.js:ssa koodi suoritetaan palvelimella, jossa voidaan generoida verkkosivuja, jotka lähetetään käyttäjälle. Selaimen ulkopuolella suoritettaessa JavaScript ei kuitenkaan ole rajoittunut verkkosivujen generointiin, vaan Node.js:ää voi käyttää samoihin käyttötarkoitukseen kuin muitakin [[Komentokieli|skriptikieliä]]. Node.js käyttää JavaScriptin suorittamiseen [[V8 (JavaScript-moottori)|V8-JavaScript-moottori]]a.<ref name="nodejs"/>


Node.js:n ohjelmointimalli on [[tapahtumankäsittelijä]] (''event loop''), joka välittää tietoa asynkronisesti.<ref>{{Verkkoviite|osoite=https://readwrite.com/what-you-need-to-know-about-nodejs/|nimeke=What You Need To Know About Node.js|tekijä=lauren orsini|julkaisu=ReadWrite|ajankohta=2013-11-07|viitattu=2023-08-09|ietf-kielikoodi=en-US}} </ref>
Node.js:n ohjelmointimalli on [[tapahtumankäsittelijä]] (''event loop''), joka välittää tietoa asynkronisesti.<ref>{{Verkkoviite|osoite=https://readwrite.com/what-you-need-to-know-about-nodejs/|nimeke=What You Need To Know About Node.js|tekijä=lauren orsini|julkaisu=ReadWrite|ajankohta=2013-11-07|viitattu=2023-08-09|ietf-kielikoodi=en-US}} </ref>


Ryan Dahl alkoi kehittää Node.js:aa 2009 ja ensimmäinen virallinen julkaisu versio 0.10 julkaisiin 2013, jonka jälkeen se on noussut jokseenkin valtaisaan suosioon.
Ryan Dahl aloitti kehityksen vuonna 2009 ja ensimmäinen virallinen julkaisu (versio 0.10) tehtiin vuonna 2013. Sen jälkeen Node.js on noussut suureen suosioon.
Vuonna 2017 ympäristöä käytettiin 450 000 verkkopalvelimella ja 3,5 miljoonaa kehittäjää työskenteli sen parissa.<ref>{{Verkkoviite|osoite=https://www.freecodecamp.org/news/what-exactly-is-node-js-and-why-should-you-use-it-8043a3624e3c/|nimeke=What exactly is Node.js and why should you use it?|julkaisu=freeCodeCamp.org|ajankohta=2017-06-02|viitattu=2023-08-09|ietf-kielikoodi=en}} </ref>
Vuonna 2017 ympäristöä käytettiin 450 000 verkkopalvelimella ja 3,5 miljoonaa kehittäjää työskenteli sen parissa.<ref>{{Verkkoviite|osoite=https://www.freecodecamp.org/news/what-exactly-is-node-js-and-why-should-you-use-it-8043a3624e3c/|nimeke=What exactly is Node.js and why should you use it?|julkaisu=freeCodeCamp.org|ajankohta=2017-06-02|viitattu=2023-08-09|ietf-kielikoodi=en}} </ref>


Node.js:llä on oma [[paketinhallintajärjestelmä]]nsa NPM eli Node Package Manager.<ref>{{Verkkoviite|osoite=https://www.sequoiacap.com/article/deno-spotlight/|nimeke=Ryan Dahl, Node.js Creator, Wants to Rebuild the Runtime of the Web|tekijä=Harry Spitzer|julkaisu=Sequoia Capital|ajankohta=2023-02-09|viitattu=2023-08-09|ietf-kielikoodi=en-US}} </ref>
Node.js:llä on oma [[paketinhallintajärjestelmä]]nsa [[npm]] eli Node Package Manager.<ref>{{Verkkoviite|osoite=https://www.sequoiacap.com/article/deno-spotlight/|nimeke=Ryan Dahl, Node.js Creator, Wants to Rebuild the Runtime of the Web|tekijä=Harry Spitzer|julkaisu=Sequoia Capital|ajankohta=2023-02-09|viitattu=2023-08-09|ietf-kielikoodi=en-US}} </ref>

== Esimerkit ==

=== Hei maailma ===
Oheisessa [[Hei maailma -ohjelma|hei maailma]] -esimerkissä ajetaan Node.js komentoriviltä. JavaScript-kielinen ohjelma annetaan <code>--eval</code>-[[Parametri (tietotekniikka)|parametrilla]] Nodelle suoritettavaksi.
<syntaxhighlight lang="bash">
$ node --eval='console.log("Hei maailma!");'
Hei maailma!
</syntaxhighlight>

=== Ohjelman suorittaminen tiedostosta ===
Esimerkissä tiedostoon <code>hello.js</code> on tallennettu yksinkertainen hei maailma -sovellus. Noden ainoaksi parametriksi annetaan suoritettavan tiedoston nimi.
<syntaxhighlight lang="bash">
$ node hello.js
Hei maailma!
</syntaxhighlight>

=== Tiedoston lukeminen ===
Node.js tarjoaa kehittäjille kirjastoja, jotka laajentavat JavaScriptin käyttömahdollisuuksia selaimen ulkopuolella. Oheisen esimerkin JavaScript-ohjelma lukee parametriksi annetun tiedoston [[tiedostojärjestelmä]]stä ja tulostaa sen konsoliin.
<syntaxhighlight lang="js">
// Otetaan käyttöön Noden fs-kirjasto tiedoston lukua varten
const fs = require('node:fs/promises');

// Tiedostonimi annetaan viimeisenä parametrinä
const filename = process.argv[process.argv.length - 1];

// Luetaan tiedosto
fs.readFile(filename, { encoding: 'utf8' })
// Tulostetaan tiedoston rivit, kun tiedosto on luettu
.then((data) => process.stdout.write(data));
</syntaxhighlight>

Esimerkki ohjelman suorituksesta:
<syntaxhighlight lang="bash">
$ node read.js hello.js
console.log("Hei maailma!");
</syntaxhighlight>


==Katso myös==
==Katso myös==
*[[Deno]]
*[[Electron (ohjelmistokehys)]]
*[[Electron (ohjelmistokehys)]]



Nykyinen versio 7. kesäkuuta 2024 kello 18.38

Node.js
Kehittäjä OpenJS Foundation
Kehityshistoria
Vakaa versio 22.0.0 ()[1]
Tiedot
Alusta Linux, macOS, Solaris, FreeBSD, OpenBSD, Microsoft Windows, webOS, NonStop OS
Ohjelmointikielet C, C++, JavaScript
Lisenssi MIT
Aiheesta muualla
Verkkosivusto
Versiohallinta

Node.js on avoimen lähdekoodin alustariippumaton ajoympäristö JavaScript-koodin suorittamiseen palvelimella.[2] Perinteisesti JavaScriptiä on pääsääntöisesti käytetty siten, että JavaScript-koodi on ollut upotettuna verkkosivun HTML-koodiin ja se on suoritettu käyttäjän laitteessa, verkkoselaimen JavaScript-moottorilla. Node.js:ssa koodi suoritetaan palvelimella, jossa voidaan generoida verkkosivuja, jotka lähetetään käyttäjälle. Selaimen ulkopuolella suoritettaessa JavaScript ei kuitenkaan ole rajoittunut verkkosivujen generointiin, vaan Node.js:ää voi käyttää samoihin käyttötarkoitukseen kuin muitakin skriptikieliä. Node.js käyttää JavaScriptin suorittamiseen V8-JavaScript-moottoria.[2]

Node.js:n ohjelmointimalli on tapahtumankäsittelijä (event loop), joka välittää tietoa asynkronisesti.[3]

Ryan Dahl aloitti kehityksen vuonna 2009 ja ensimmäinen virallinen julkaisu (versio 0.10) tehtiin vuonna 2013. Sen jälkeen Node.js on noussut suureen suosioon. Vuonna 2017 ympäristöä käytettiin 450 000 verkkopalvelimella ja 3,5 miljoonaa kehittäjää työskenteli sen parissa.[4]

Node.js:llä on oma paketinhallintajärjestelmänsa npm eli Node Package Manager.[5]

Oheisessa hei maailma -esimerkissä ajetaan Node.js komentoriviltä. JavaScript-kielinen ohjelma annetaan --eval-parametrilla Nodelle suoritettavaksi.

$ node --eval='console.log("Hei maailma!");'
Hei maailma!

Ohjelman suorittaminen tiedostosta

[muokkaa | muokkaa wikitekstiä]

Esimerkissä tiedostoon hello.js on tallennettu yksinkertainen hei maailma -sovellus. Noden ainoaksi parametriksi annetaan suoritettavan tiedoston nimi.

$ node hello.js
Hei maailma!

Tiedoston lukeminen

[muokkaa | muokkaa wikitekstiä]

Node.js tarjoaa kehittäjille kirjastoja, jotka laajentavat JavaScriptin käyttömahdollisuuksia selaimen ulkopuolella. Oheisen esimerkin JavaScript-ohjelma lukee parametriksi annetun tiedoston tiedostojärjestelmästä ja tulostaa sen konsoliin.

// Otetaan käyttöön Noden fs-kirjasto tiedoston lukua varten
const fs = require('node:fs/promises');

// Tiedostonimi annetaan viimeisenä parametrinä
const filename = process.argv[process.argv.length - 1];

// Luetaan tiedosto
fs.readFile(filename, { encoding: 'utf8' })
  // Tulostetaan tiedoston rivit, kun tiedosto on luettu
  .then((data) => process.stdout.write(data));

Esimerkki ohjelman suorituksesta:

$ node read.js hello.js
console.log("Hei maailma!");
  1. Release 22.0.0, . Tieto on haettu Wikidatasta.
  2. a b Node.js nodejs.org. Viitattu 21.2.2018. (englanniksi)
  3. lauren orsini: What You Need To Know About Node.js ReadWrite. 7.11.2013. Viitattu 9.8.2023. (englanniksi)
  4. What exactly is Node.js and why should you use it? freeCodeCamp.org. 2.6.2017. Viitattu 9.8.2023. (englanniksi)
  5. Harry Spitzer: Ryan Dahl, Node.js Creator, Wants to Rebuild the Runtime of the Web Sequoia Capital. 9.2.2023. Viitattu 9.8.2023. (englanniksi)
Tämä ohjelmistoon liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.