Web Nodejs
Web Nodejs
Tehnologii Web
⍟
JavaScript la nivel de server – Node.js
(aspecte esențiale)
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
„Cine a văzut vreodată o bijuterie frumos cizelată
de bijutier cu ajutorul ciocanului?”
node program.js
node.js
evented I/O
cod JS executat de cod JS rulat pe partea
client (browser Web) de server (node.js)
procesare
blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
node.js: caracterizare
blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
Aplicația node.js „reacționează” la evenimente
context mainode.js: caracterizare
larg: reactive programming – reactivex.io
bijoor.me/2013/06/09/java-ee-threads-vs-node-js-which-is-better-for-concurrent-data-processing-operations/
HTTP: server Web
nodejs.org/en/download/
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
funcționalități suplimentare
oferite de module administrate cu npm – npmjs.org
node.js: caracterizare
detalii la docs.npmjs.com
node.js: exemplu
invocarea unei
metode oferită de
un obiect predefinit
node.js: exemplu
nodejs.org/en/docs/
devdocs.io/node/
atenție:
o parte dintre funcționalități
node.js: module
sunt experimentale
metode uzuale:
listen() setTimeout() close()
metode uzuale:
writeHead() getHeader() removeHeader() write() end() etc.
metode uzuale:
write() abort() end() setTimeout() setSocketKeepAlive()
proprietăți de interes:
httpVersion headers method url statusCode socket
node.js: module – url
metode oferite:
parse() format() resolve()
nodejs.org/api/url.html
var url = require ('url');
partea de server:
createServer()
+
clasa net.Server
metode: listen() close() address() getConnections()
evenimente: listening connection close error
node.js: module – net
partea de client:
connect()
createConnection()
node.js: module – net
github.com/victorporof/plgen
node.js: fluxuri de date
detalii la nodejs.org/api/stream.html
medium.freecodecamp.org/node-js-streams-everything-you-need-to-know-c9141306be93
node.js: fluxuri de date
var contor = 0;
var interval = setInterval ( // generăm valori ale contorului conform intervalului de timp
function () {
raspuns.write ('<p>Contorul are valoarea ' + contor + '</p>');
console.log ('Contorul are valoarea ' + contor);
contor++;
if (contor >= 7) {
clearInterval (interval); // ștergem intervalul
raspuns.end (); // închidem fluxul de răspuns
console.log ('Am trimis raspuns clientului ' + cerere.headers['user-agent']);
}
}, 1000); // cod rulat la interval de 1000 milisecunde
});
Cerere de la clientul … Mozilla/5.0 (Windows NT 10.0 …) … Firefox/59.0
Contorul are valoarea 0
Contorul are valoarea 1
Contorul are valoarea 2
nodejs.org/api/events.html
node.js: module externe
detalii la www.npmjs.com/package/sql.js
github.com/senchalabs/connect
node.js: framework-uri web – connect
expressjs.com
/
│ app.js
│ package.json diverse configurări ale aplicației
├───bin
├───data specificarea modelelor de date
nodejs.org/en/docs/es6/
node.js: suport es6
exemplificări:
Node.js Tools for Visual Studio
www.visualstudio.com/vs/node-js/
Node on Train (scaffolding tool for full stack developer)
nodeontrain.xyz
node.js: utilizări pragmatice
Node Weekly
nodeweekly.com
node.js: resurse utile
Built in Node
builtinnode.com
rezumat