Node.js este un software open source și complet gratuit ce permite dezvoltatorilor web să creeze programe de rețea scalabile și rapide. Bazându-se pe runtime-ul JavaScript al Chrome, software-ul Node.js este extrem de eficient și ușor, mai ales pentru că utilizează un model I / O fără blocare, bazat pe evenimente.
Platforma de top pentru rularea codului JavaScript de pe server
Node.js este în prezent considerată platforma de top pentru rularea codului JavaScript de pe server, fiind utilizat în producție în companii mari precum Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 și multe altele.
Exemplu obligatoriu
Următorul cod va crea un server web simplu care răspunde cu "Hello World" pentru fiecare solicitare.
var http = necesită ("http");
http.createServer (funcția (req, res) {
res.writeHead (200, {'Content-Type': 'text / simplu'));
res.end ("Hello Worldn");
}) ascultați (1337, '127.0.0.1');
console.log ("Server rulează la http://127.0.0.1:1337/");
Pentru a rula serverul HTTP, va trebui să introduceți codul de mai sus într-un fișier numit & ldquo; example.js & rdquo; (fără citate) și executați-o cu comanda nod dintr-un emulator terminal:
% node example.js
Serverul rulează la http://127.0.0.1:1337/
Sisteme de operare acceptate
Node.js este o aplicație multi-platformă care a fost testată cu succes în numeroasele distribuții GNU / Linux, inclusiv Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware ca și în sistemele comerciale de operare Mac OS X și Microsoft Windows. Ambele arhitecturi de seturi de instrucțiuni pe 64 de biți și 32 de biți sunt acceptate în acest moment.
Sub capota, cerințe și disponibilitate
După cum sa menționat, acesta este un software multi-platformă. Acesta poate fi descărcat ca instalatori pre-construiți pentru sistemele de operare Mac OS X, GNU / Linux și Microsoft Windows, precum și o arhivă sursă universală care poate fi compilată și instalată pe orice sistem de operare în care Python este acceptat.
Ce este nou în această versiune:
- consolă:
- Metoda console.timeLog () a fost implementată. # 21312
- dependențele:
- Actualizați la libuv 1.22.0. # 21731
- Actualizați la ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- A fost adăugat suport pentru trecerea opțiunilor timeout și agent la http.request. # 21204
- inspector:
- Expuneți API-ul consolei originale în consolă ("inspector"). # 21659
- napi:
- A fost adăugat un suport experimental pentru funcțiile care se ocupă de numerele mari. # 21226
- proces:
- Metoda process.hrtime.bigint () a fost implementată. # 21256
- A fost adăugat argumentul liniei de comandă - titlu pentru a seta titlul procesului la pornire. # 21477
- trace_events:
- Au fost adăugate metadatele procesului_name. # 21477
- Au fost adăugați colaboratori noi
- codebytere - Shelley Vohr
Ce este nou în versiunea 10.0.0:
Ce este nou în versiune:
- async_hooks:
- adăugați evenimente de urmărire la async_hooks (Andreas Madsen) # 15538
- adăugați tipurile de furnizori pentru serverul net (Andreas Madsen) # 17157
- consolă:
- console.debug poate fi folosit acum în afara inspectorului (Benjamin Zaslavsky) # 17033
- dependențele:
- faceți upgrade libuv la 1.18.0 (cjihrig) # 17282
- patch V8 la 6.2.414.46 (Myles Borins) # 17206
- modul:
- module.builtinModules va returna o listă a modulelor construite (Jon Moss) # 16386
- n-api:
- adăugați ajutor pentru addonuri pentru a obține bucla de eveniment (Anna Henningsen) # 17109
- proces:
- process.setUncaughtExceptionCaptureCallback poate fi acum folosit pentru a personaliza comportamentul pentru --abort-on-uncaught-exception (Anna Henningsen) # 17159
- Un handler de semnale este acum capabil să primească codul de semnal care a declanșat dispozitivul de manipulare. (Robert Rossmann) # 15606
- src:
- Embederele pot folosi acum Node :: CreatePlatform pentru a crea o instanță a NodePlatform (Cheng Zhao) # 16981
- flux:
- writable.writableHighWaterMark și readable.readableHighWaterMark va returna valorile pe care a fost instanțiat obiectul fluxului cu (Calvin Metcalf) # 12860
- Au fost adăugați colaboratori noi
- maclover7 Jon Moss
- guybedford Guy Bedford
- a făcut Yang Guo
Ce este nou în versiunea 9.2.0:
Ce este nou în versiunea 8.5.0:
- construi:
- Snapshot-urile sunt acum re-activate în V8 # 14875
- consolă:
- Implementați console.group () minim. # 14910
- dependențele:
- actualizați liblu la 1.14.1 # 14866
- actualizați nghttp2 la v1.25.0 # 14955
- dns:
- Adăugați opțiunea verbatim la dns.lookup (). Când este adevărat, rezultatele din resolverul DNS sunt transmise așa cum este, fără ca reîncadrarea că Node.js să facă altfel introduce adresele IPv4 înaintea adreselor IPv6. # 14731
- fs:
- adăugați fișierele fs.copyFile și fs.copyFileSync, care permit copierea mai eficientă a fișierelor. # 15034
- inspector:
- Activați urmările stivei de async # 13870
- modul:
- Adăugați suport pentru ESM. Acest lucru se află în prezent sub pavilionul -experimental-modules și necesită extensia .mjs. nod - experimente-module index.mjs # 14369
- napi:
- pune în aplicare promisiunea # 14365
- os:
- Adăugați suport pentru notația CIDR la ieșirea metodei de rețea Interfaces (). # 14307
- perf_hooks:
- O implementare inițială a API-ului Performance Timing pentru Node.js. Acesta este același API al performanței de performanță implementat de browserele moderne cu un număr de proprietăți specifice Node.js. Sunt implementate API-urile marcajului utilizator () și măsura (). # 14680
- tls:
- mai multe PFX în createSecureContext # 14793
- Au fost adăugați colaboratori noi:
- BridgeAR - Ruben Bridgewater
Ce este nou în versiunea 8.3.0:
- Motorul V8 a fost modernizat la versiunea 6.0, care are un profil de performanță semnificativ modificat.
- Alte modificări notabile:
- DNS:
- În prezent, sunt suportate instanțe independente de rezolvare a resurselor DNS, cu suportul pentru anularea cererilor corespunzătoare.
- N-API:
- Mai multe funcții N-API pentru tratarea erorilor au fost modificate pentru a suporta codurile de eroare.
- REPL:
- Suportul de completare automată pentru cerință () a fost îmbunătățit.
- Utilități:
- Standardul de codificare WHATWG (TextDecoder și TextEncoder) a fost implementat ca o caracteristică experimentală.
Ce este nou în versiunea 8.1.3:
- Stream Două regresii cu modulul flux au fost fixate:
- Evenimentul de finisare va fi emis întotdeauna după evenimentul de eroare dacă este emis: [0a9e96e86c] # 13850
- În modul obiect, fluxurile care pot fi citite pot utiliza din nou nedefinit. [5840138e70] # 13760
Ce este nou în versiunea 8.1.2:
- Corectați proprietățile procesului rupt.exe în 8.1.1, cauzând eșecul de a compila add-on-uri native pe alte platforme decât Windows. Aceasta este o rezolvare în procesul de construire Node.js, astfel încât nu sunt incluse comitete suplimentare de cod în partea de sus a 8.1.1.
Ce este nou în versiunea 7.7.1:
- [c8e34b61f6] - construiți: adăugați fișierele cu antetul lipsă src / tracing header (Daniel Bevenius) # 10851
- [96f55f9e59] - src: mutați trace_event.h pentru antetul intern (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: remediați curățarea TracingController (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: întotdeauna inițializați controlerul de urmărire în agent (Matt Loring) # 10507
- [54e55e05ca] - test: face test-intl-no-icu-data mai robust (Michael Zasso) # 10992
- [7b253eb3ed] - test: sporiți strictețea pentru test-trace-event (Rich Trott) # 11065
- [3dc4a5f1f4] - urmărire: reparați-avertizare privată de câmp (Santiago Gimeno) # 10416
- [8a918bf411] - urmărire: fixare - Avertisment de avertizare (Santiago Gimeno) # 10416
Ce este nou în versiunea 7.4.0:
- tampon:
- Îmbunătățiți performanța alocării tampon cu ~ 11%. (Brian White) # 10443
- Îmbunătățiți performanța Buffer.from () cu ~ 50%. (Brian White) # 10443
- evenimente: Îmbunătățiți performanța EventEmitter.once () cu ~ 27%. (Brian White) # 10445
- fs: Permiteți trecerea Uint8Array la metodele fs unde sunt acceptate Bufferele. (Anna Henningsen) # 10382
- http: Îmbunătățiți performanța serverului http cu ~ 7%. (Brian White) # 6533
- npm: faceți upgrade la v4.0.5 (Kat Marchan) # 10330
Ce este nou în versiunea 7.2.1:
- tampon:
- A revenit la deprecierea runtime a apelului Buffer () fără a fi introdusă o nouă versiune. (Anna Henningsen) # 9529
- Fixed buffer.transcode () pentru codificarea caracterelor de un octet la UCS2. (Anna Henningsen) # 9838
- promisiunea: - avertismentele de tip "trace-warnings" produc acum stack-uri utile pentru avertismentele Promise. (Anna Henningsen) # 9525
- repl: Fixarea unei erori care împiedică parsarea corectă a funcțiilor generatorului. (Teddy Katz) # 9852
- V8: S-a stabilit un exemplu semnificativ de regresie a performanței. (Franziska Hinkelmann) # 9730
Ce este nou în versiunea 7.2.0:
- crypto: Metodele Decipher setAuthTag () și setAAD returnează acum acest lucru.
- DNS: Implementat {ttl: true} pentru resolve4 () și rezolva6 ().
- libuv: Upgrade la v1.10.1
- S-a rezolvat o depășire potențială a tamponului atunci când se scriu date pentru consolă pe Windows 10. (CVE-2016-9551)
- proces: a adăugat o nouă proprietate externă datelor returnate de memoryUsage ().
- tls: S-a fixat o scurgere de memorie atunci când a fost scrisă în coadă pe conexiunea TLS care a fost distrusă în timpul strângerii de mână.
- V8 (dep): Upgrade la v5.4.500.43
- v8: Datele returnate de getHeapStatistics () includ acum trei câmpuri noi: malloced_memory, peak_malloced_memory și does_zap_garbage.
Ce este nou în versiunea 6.4.0:
- Construiți: simbolurile zlib și simbolurile OpenSSL suplimentare sunt acum expuse pe platformele Windows. (Alex Hultman) # 7983 și # 7576
- child_process, cluster: procesele copilului în furcă și lucrătorii din grupuri suportă acum configurația stdio. (Colin Ihrig) # 7811 și # 7838
- child_process: argv [0] poate fi acum setat la valori arbitrare în procesele spawned. (Pat Pannuto) # 7696
- fs: fs.ReadStream expune acum numărul de octeți citiți până acum. (Linus Unneback) # 7942
- repl: REPL suportă acum modul editor. (Prince J Wesley) # 7275
- util: inspect () poate fi acum configurat global folosind util.inspect.defaultOptions. (Roman Reiss) # 8013
Ce este nou în versiunea 6.3.0:
- tampon: adăugat buffer.swap64 () pentru a completa swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- build: Au fost adăugate noi opțiuni de configurare pentru construirea Node.js ca bibliotecă partajată. (Ștefan Budeanu) # 6994
- Opțiunile sunt: - shared, --without-v8-platform & amp; --without-pachet-v8.
- crypto: Certificatele de bază au fost actualizate. (Ben Noordhuis) # 7363
- debugger: Adresa serverului este acum configurabilă prin intermediul --debug = :. (Ben Noordhuis) # 3316
- npm: Actualizarea npm la v3.10.3 (Kat Marchan) # 7515 & (Rebecca Turner) # 7410
- readline: a adăugat opțiunea prompt la constructorul readline. (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c va ieși acum din bucle infinite fără a opri instanța Node.js. (Anna Henningsen) # 6635
- src:
- A fost adăugat un nod :: FreeEnvironment public C ++ API. (Cheng Zhao) # 3098
- Cerințele refactate ("constantele"), constantele sunt acum disponibile direct din modulele lor respective. (James M Snell) # 6534
- Stream: performanța citibil.read () îmbunătățită cu până la 70%. (Brian White) # 7077
- cronometre: setImmediate () este acum cu până la 150% mai rapid în anumite situații. (Andras) # 6436
- util: a adăugat o opțiune breakLength la util.inspect () pentru a controla modul în care obiectele sunt formatate pe linii. (cjihrig) # 7499
- Inspector v8: A fost adăugat suport experimental pentru depanarea Node.js peste protocolul inspectorului. (Ali Ijaz Sheikh) # 6792
- Notă: această caracteristică este experimentală și ar putea fi modificată sau eliminată.
- Puteți încerca această caracteristică rulând Node.js cu pavilionul - inspect.
Ce este nou în versiunea 6.0.0:
- Buffer:
- Au fost adăugați constructori de tampoane noi # 4682 și # 5833.
- Constructorii existenți ai Buffer () și SlowBuffer () au fost deprimați în docs # 4682 și # 5833.
- API-urile tampon anterioare depreciate sunt eliminate # 5048, # 4594.
- Îmbunătățirea procesării erorilor # 4514.
- A fost adăugată metoda Buffer.prototype.lastIndexOf () # 4846.
- Cluster:
- Lucrător emis ca prim argument în mesajul "mesaj" # 5361.
- Proprietatea worker.exitedAfterDisconnect înlocuiește worker.suicide # 3743.
- Console:
- Apelarea console.timeEnd () cu o etichetă necunoscută emite acum un avertisment de proces, în loc să arunce # 5901.
- Crypto:
- Îmbunătățirea gestionării erorilor # 3100, # 5611.
- Legături clase simplificate ale certificatului # 5382.
- Control îmbunătățit asupra modului FIPS # 5181.
- pbkdf2 supraîncărcarea digestului este depreciată # 4047.
- Dependențe:
- Reintroduceți suportul partajat c-ares build # 5775.
- V8 actualizat la 5.0.71.35 # 6372.
- DNS:
- Adăugați API-ul dns.resolvePtr () pentru a interoga înregistrările simple DNS PTR # 4921.
- Domenii:
- Ștergeți stiva atunci când nu există niciun manager de eroare # 4659.
- Evenimente:
- Obiectul EventEmitter.prototype._events nu mai moșteneste de la Object.prototype # 6092.
- Au fost adăugate metodele EventEmitter.prototype.prependListener () și EventEmitter.prototype.prependOnceListener () # 6032.
- Sistem de fișiere:
- Metodele fs.realpath () și fs.realpathSync () au fost actualizate pentru a utiliza o implementare mai eficientă bazată pe libuv. Această modificare include eliminarea argumentului din memoria cache, iar metoda poate arunca erori noi # 3594.
- FS apis poate accepta și returnează căile ca Tampoane # 5616.
- Eroare de manipulare și de tip de verificare a îmbunătățirilor # 5616, # 5590, # 4518, # 3917.
- interfața șirului fs.read este depreciată # 4525.
- HTTP:
- 'clientError' poate fi acum folosit pentru a returna erorile personalizate de la un server HTTP # 4557.
- Module:
- Directorul curent este acum prioritar pentru căutările locale # 5689.
- Legăturile simbolice sunt păstrate la solicitarea modulelor # 5950.
- Net:
- Sugestii DNS nu mai sunt setate implicit # 6021.
- Îmbunătățirea gestionării erorilor și verificarea tipului # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET a fost bumped până la 10.7 # 6402.
- Path:
- Verificare îmbunătățită a tipului # 5348.
- Procesul:
- Introduceți avertismentele procesului API # 4782.
- Aruncați excepția când treci non-funcția la următorul text # 3860.
- querystring:
- Obiectul returnat de querystring.parse () nu mai moșteneste de la Object.prototype # 6055.
- Readline:
- Informațiile cheie sunt emise necondiționat # 6024.
- Istoria poate fi acum dezactivată în mod explicit # 6352.
- REPL:
- Alocarea la _ va emite un avertisment # 5535.
- Expresiile nu vor mai fi terminate atunci când evalul nu reușește # 6328.
- Temporizatoare:
- Eșuați mai devreme când apelul de apel nu este o funcție # 4362.
- Curente:
- null este acum o bucată nevalidă pentru scrierea în modul Obiect # 6170.
- TLS:
- Redenumiți 'clientError' la 'tlsClientError' # 4557.
- SHA1 folosit pentru sessionIdContext # 3866.
- TTY:
- Învelișul setRawMode depreciat anterior a fost eliminat # 2528.
- URL:
- Numele de utilizator și parola vor fi eliminate de url.resolve () dacă gazda modifică # 1480.
- Util:
- Modifică formatul obiectului de eroare # 4582.
- Metoda util._extend () a fost depreciată # 4903
- Metoda util.log () a fost depreciată # 6161.
- Ferestre:
- Windows XP și Vista nu mai sunt acceptate # 5167.
- Zlib:
- Au fost făcute îmbunătățiri multiple în procesarea Zlib # 5883 și # 5707.
Cerințe :
- Python
Comentariile nu a fost găsit