Node.js

Node.js on avoimen lähdekoodin alustariippumaton ajoympäristö JavaScript-koodin suorittamiseen palvelimella.

Historia
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. 

Ominaisuudet
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.

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

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

 Esimerkit 

 Hei maailma 
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 
Esimerkissä tiedostoon hello.js on tallennettu yksinkertainen hei maailma -sovellus. Noden ainoaksi parametriksi annetaan suoritettavan tiedoston nimi.
$ node hello.js
Hei maailma!

 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.
// 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!");

Katso myös
Deno
Electron (ohjelmistokehys)

 Lähteet 

Luokka:Vapaat ohjelmistot
Luokka:JavaScript