Piacere di conoscerti Node.Js

Il regno incontrastato di JavaScript è il browser; Node.Js è un framework che permette di espandere i suoi confini e scrivere codice javaScript che può essere eseguito al di fuori del browser; scrivere programmi che possono, ad esempio, essere eseguiti su di un server.

A cosa vi serve un programma che gira su di un server? Ad esempio potreste voler processare un’ingente quantità di dati, salvarne il risulti in un database, passarli all’utente che sta interagendo con l’interfaccia web sul vostro sito; permettere alla vostra applicazione di comunicare con l’interfaccia di programmazione di un’altra applicazione (API) o scriverne una tutta vostra… A dirla tutta Node.Js è nato per semplificare e velocizzare le operazioni di lettura/risposta (I/O in gergo, da Input/Output) del codice, da parte dell’elaboratore lato server, sfruttando a pieno l’asincronicità offerta da JavaScript. Ma, se avessi cominciato il paragrafo così, probabilmente molti di voi starebbero già a qualche click di distanza. Dovevo dirlo e l’ho detto. Ora, se volete addentrarvi oltre negli aspetti tecnici della questione, guardatevi questa fantastica presentazione per il lancio di Node.Js, del 2009, fatta direttamente dal suo creatore: Ryan Dahl, programmatore per antonomasia.
Poi continuiamo con roba pratica e torniamo a volare basso.

Prima di parlare di programmi che girano su un qualche server, seppellito in qualche bunker sotterraneo, partiamo dal terminale del vostro computer. Anzi, prima ancora, di aprire il terminale, visitate nodejs.org e scaricate la versione di Node.js per il vostro sistema (Mac OS nel mio caso).

Aprite il terminale (applicazioni/utility/terminale), questo è il giardino segreto in cui potete parlare al vostro computer nella maniera più diretta ed esplicita possibile; ovviamente dovete parlare la sua lingua ed il turpiloquio non è contemplato. Ecco alcuni dei comandi d’uso più comune:

$pwd // print working directory: vi dice dove vi trovate
$cd .... // change directory: per andare da qualche altra parte

$cd documents // ad es. vi porterà nella vostra cartella documenti
$pwd // Users/SetupDraw/documents

$ls // list files: elenca i file presenti nella directory corrente
$clear // pulisce lo schermo del terminale

Una volta che avete istallato Node, potete lanciarlo nel terminale scrivendo semplicemente ‘$node’. Noterete il simbolo del dollaro cambiare nel simbolo maggiore di ‘>’; è il segno che siete passati da comandi Unix a Javascript, potete adesso parlare con il vostro computer utilizzando questo linguaggio e fargli leggere file scritti in JavaScript (per uscire ‘Ctrl+C’ ed ancora ‘Ctrl+C’).

SetupDraw$ node
> var myMessage = "Hello Node!";
undefined
> myMessage
'Hello Node!'
> 
(To exit, press ^C again or type .exit) 
> 
MBP-of-SetupDraw:Programming SetupDraw$ node hello.js
this is the text message launched by console.log in hello.js file!
$

Adesso mettiamo il turbo e scopriamo Node Package Manager (NPM): un piccolo programma che avete istallato assieme con Node e che apre le porte ad una copiosa raccolta di utilissimi moduli JavaScript a vostra disposizione. Innanzi tutto però, prima di perdersi tra i moduli offerti da NPM, predisponiamo un file che ci permetta di gestire il nostro intero progetto nella maniera più ordinata possibile, una sorta di file di settaggio generale, chiamato convenzionalmente ‘package.json‘ (JSON è l’acronimo di Javascript Object Notation). Potete lasciare che Node predisponga tale file per voi, in modo automatico, semplicemente digitando il comando ‘npm init‘, dopo aver individuato la directory in cui volete salvare il vostro progetto.

MBP-of-SetupDraw:testfolder SetupDraw$ npm init

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.

name: (testFolder) ...

A questo punto vi verrà richiesto di battezzare il vostro progetto e fornire tutta una serie di informazioni (su alcune delle quali potete al momento tranquillamente sorvolare).

name: (testFolder) testproject 
version: (1.0.0)
description: testing npm
entry point: (index.js) test.js
test command:
git repository:
keywords:
author:
license: (ISC)

About to write to /Users/SetupDraw/Documents/Programming/node/testFolder/package.json:
 {
"name": "testproject",
"version": "1.0.0", 
"description": "testing npm",
"main": "test.js",
"scripts": { "test": "echo \"Error: no test specified\" && exit 1" },
"author": "", "license": "ISC" 
}

Is this ok? (yes) yes

Basatevi sull’esempio di cui sopra, lasciate pure in bianco test command, git repository, keywords, author, license, tirate un bel sospiro e dite yes. Et voilà! Nella cartella del vostro progetto troverete ad attendervi il file package.json che Node ha appena generato per voi. Potete aprirlo con il vostro editor preferito, il mio attualmente è Atom, ma, in mancanza di altro, va bene anche il buon vecchio text editor. Potete infatti modificare in qualsiasi momento package.json secondo le vostre necessità, anche manualmente.

Adesso potete scaldarvi una tazza di tè e farvi un giro panoramico su npmjs.com, tra centinaia e centinaia di moduli creati da una copiosissima community di sviluppatori. Se ad esempio volete istallare un modulo che vi consenta di “parlare” con le API di Twitter e creare un Twitter Bot, potete istallare Twit, digitando il seguente comando:

$ npm install twit --save

Alcuni dei moduli disponibili presso npmjs.com sono molto popolari, ben rodati, costantemente aggiornati e corredati da una esaustiva documentazione, altri meno. Tutti sono pronti all’uso. Il giro di prova è a portata di click. Buon divertimento!

Leave a Reply

Your email address will not be published. Required fields are marked *