Laborator 2 - Introducere in NodeJS

Introducere in NodeJS

Instalare

Instalarea se face diferit pentru Windows si Linux.

Windows

Pentru Windows, instalarea se face folosind un kit care se poate descarca de pe pagina NodeJS. Trebuie doar sa alegeti varianta corespunzatoare sistemului de operare (32 sau 64 de biti). Aveti nevoie de parola de administrator doar la instalare.

Reporniti calculatorul dupa instalarea NodeJS.

Linux

Pentru Linux, NodeJS se poate instala fie din repository-urile distributiei (folosind apt-get sau yum), fie prin compilarea sursei de pe pagina NodeJS. Va recomandam instalarea prin compilare, deoarece versiunile din repository-uri sunt vechi.

Pentru compilare, descarcati sursele de pe pagina NodeJS. Aveti nevoie de gcc, g++, make, openssl, python instalate.

Compilarea se face folosind urmatoarele comenzi:

./configure
make
sudo make install

Dupa cums e poate observa, una dintre comenzi (cea cu sudo) are nevoie de un utlizator privilegiat. Daca nu aveti asa ceva, puteti instala NodeJS in contul local:

./configure --prefix=~/local
make
make install

Astfel veti avea un director local in directorul utilizatorului in care va fi instalat NodeJS. Pentru a functiona, trebuie sa adaugati o cale de cautare catre fisierele executabile ale NodeJS. Pentru acesta, adaugati in fisierul ~/.bashrc urmatoarea linie:

export PATH=$HOME/local/bin:$PATH

Instalarea pachetelor

NodeJS este doar compilatorul si cateva biblioteci pentru programare. Pentru a adauga functionalitati, trebuie sa instalati biblioteci suplimentare. Acesta se face folosind comanda npm. Sintaxa este urmatoarea:

npm [-g] install nume_biblioteca

Instalarea bibliotecilor se face intr-un director numit node_modules. Acesta este fie directorul global al NodeJS (daca parametrul -g este specificat) fie in directorul curent.

Pentru laboratorul de astazi avem nevoie de biblioteca dict. Vom instala biblioteca in directorul curent la momentul potrivit.

npm install dict

IDE

NodeJS este doar compilatorul, asa ca pentru scrierea programelor aveti nevoie de un alt program. Puteti folosi orice program, noi recomandam:

  • SublimeText
  • Nodepad++
  • Vim

Rularea programelor

Aveti nevoie de un terminal pentru a rula programele. NodeJS este similar cu python in acest sens. Un program se porneste folosind comanda:

node fisier_program.js

In Windows, proniti un terminal folosind comanda cmd.exe (atentie, nu rulati direct node.exe, acesta nu va executa un program, va pornit doar NodeJS in modul interactiv - adica asteapta instructiuni de javascript).

Limbajul

Sintaxa limbajului este similara cu cea din C. Variabilele au tip dinamic, adica tipul lor se schimba in functie de ce anume memoreaza.

Scrierea pe ecran

Pe ecran se poate afisa folosind functiile console.log() si console.error (). Care este diferenta dintre acestea doua?

Exemplu:

console.log ('Hello from NodeJS');

Declararea variabilelor

Variabilele se declara folosind cuvantul cheie var.

var a;
var b;

Valorile speciale ale variabilelor

In Javascript exista trei tipuri de valori speciale, diferite una de alta.

  • undefined - este valoarea unei variabile care nu a primit niciodata valoare
  • null - este valoarea echivalenta cu NULL din C, insa este diferita de valoarea 0 sau valoarea undefined
  • false - este valoarea falsa din C, diferita de 0, null si undefined
  • true - este valoarea adevarata

false != null != undefined != 0

Siruri de caractere

Sirurile de caractere se scriu intre ghilimele sau aprostroafe '. Acestea se pot concatena folosind +.

Exemplu:

var a = 'Programam in';
var b = a + " Javascript";
 
console.log (b);

Declararea functiilor

Functiile sunt similare cu cele din C, insa nu au un tip de intoarcere bine definit. O functie se declara folosind cuvantul cheie function urmat de numele functiei, paranteza deschisa, lista de parametrii, paranteza inchisa urmata de coldul functiei intre acolade.

Exemplu:

function egale (a, b)
{
  if (a==b) return true;
  else return false;
}

O functie poate intoarce orice tip de valoare. In functie de ce tip este scris dupa cuvantul return, functia va intoarce un tip sau altul. De asemenea, o functie intoarce mereu o valoare. Daca nu este folosit cuvantul return nicaieri, functie va intoarce undefined.

Exemplu:

function afiseaza ()
{
  console.log ('afiseaza');
}
 
var n = afiseaza ();

Variabila n va avea valoarea undefined.

Siruri

Sirurile sunt alocate dinamic in Javascript. Realizarea unui sir nou se face prin folosirea parantezelor drepte. Elementele dintr-un sir pot fi de tipuri diferite.

Exemplu:

// un sir vid
var n = [];
 
// un sir cu elemente omogene
var n = [1,2,3];
 
// un sir cu elemente neomegene
var n = [1, 'caractere', 10.5];

Sirurile pot fi folosite ca stive prin folosirea functiilor push si pop.

  • push adauga un element in sir
  • pop scoate ultimul element din sir

Dimensiunea sirului poate fi obtinuta prin variabila length.

Exemplu:

var a = [1,2,3];
 
a.push (4); // adauga 4 la in sir
console.log (a);
 
var x=a.pop (); // scoate ultimul element din sir
console.log (x);
console.log (a);
 
console.log ('Sirul are '+a.length+' elemente');

TODO matrici

Structuri

Spre deosebire de C, unde sructurile au un sablon prestabilit, in javascript structurile sunt dinamice. Acestea se declara folosind acolade. Se pot adauga si sterge dinamic membrii.

Exemplu:

var faraelemente = {};
 
var masa = 
{
  numarPicioare: 4,
  tip: 'lemn',
  culoare: 'verde',
  eticheta: ''
};
 
console.log (faraelemente);
console.log (masa);

Am declarat doua structuri: faraelemente este o structura fara membrii si masa o structura ce defineste o masa. Putem acum adauga membrii noi amandurora:

faraelemente.membru = 'membru';
masa.lungime= 300;
console.log (faraelemente);
console.log (masa);
 
delete masa.eticheta;
 
console.log (masa);

O structura poate contine ca mebrii siruri sau alte structuri:

var scaun
{
  tapiterie: ['albastru','galben','verde'],
  culoare: 'portocaliu',
  vazator: 
     {
        firma: 'firma',
        pret: 299
     }
};

Exercitii

  1. Scrieti un program care va afiseaza numele pe ecran.
  2. Scrieti un program care defineste un sir si afiseaza sirul pe ecran.
  3. Scrieti un program care defineste un sir si o functie care afiseaza sirul pe ecran.
  4. Scrieti un program in care definiti o structura si ii afisati componentele.
  5. Scrieti un program care defineste un dictionar si afiseaza componentele sale.
cpl-atm/laboratoare/laborator2.txt · Last modified: 2013/10/31 08:01 by alexandru.radovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0