Node.js is 'n oop bron en heeltemal gratis sagteware wat webontwikkelaars bemagtig om skaalbare en vinnige netwerkprogramme te bou. Die sagteware van Node.js is gebaseer op Chrome se JavaScript-runtime. Dit is uiters doeltreffend en liggewig, veral omdat dit 'n nie-blokkerende, gebeurtenisgedrewe I / O-model gebruik.
Die boonste platform vir die bestuur van JavaScript-kode vir bedieners
Node.js word tans beskou as die boonste platform vir die bestuur van JavaScript-kode vir bedieners, wat gebruik word in produksie in groot maatskappye soos Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 en nog baie meer.
Verpligte voorbeeld
Die volgende kode sal 'n eenvoudige webbediener skep wat reageer met "Hello World" vir elke versoek.
var http = vereis ('http');
http.createServer (funksie (req, res) {
res.writeHead (200, ('Content-Type': 'text / plain'});
res.end ('Hello Worldn');
}). luister (1337, '127.0.0.1');
console.log ('Server loop op http://127.0.0.1:1337/');
Om die HTTP-bediener te laat loop, moet u die kode hierbo in 'n lêer genaamd 'example.js & rdquo; (sonder aanhalingstekens) en voer dit uit met die knoppie bevel van 'n terminale emulator:
% node example.js
Server loop op http://127.0.0.1:1337/
Ondersteunde bedryfstelsels
Node.js is 'n multi platform program wat suksesvol getoets is onder talle GNU / Linux verspreidings, insluitend Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, open SUSE, Mageia, Slackware en ander. soos op die kommersiële Mac OS X- en Microsoft Windows-bedryfstelsels. Beide 64-bis en 32-bis instruksies stel argitekture word tans ondersteun.
Onder die kap, vereistes en beskikbaarheid
Soos genoem, is dit 'n multi-platform sagteware. Dit kan afgelaai word as voorafgeboude installeerders vir die Mac OS X-, GNU / Linux- en Microsoft Windows-bedryfstelsels, sowel as 'n universele bron argief wat op feitlik enige bedryfstelsel geïnstalleer kan word waar Python ondersteun word.
Wat is nuut in hierdie weergawe:
- konsole:
- Die konsole.timeLog () metode is geïmplementeer. # 21312
- VVPA:
- Upgrade na libuv 1.22.0. # 21731
- Upgrade na ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- Bygevoeg ondersteuning vir die oordrag van beide time-out en agent opsies na http.request. # 21204
- inspekteur:
- Stel die oorspronklike konsole API in die vereiste ('inspekteur') konsole. # 21659
- napi:
- Bykomende eksperimentele ondersteuning vir funksies wat handel oor bigintgetalle. # 21226
- proses:
- Die proses.hrtime.bigint () metode is geïmplementeer. # 21256
- Bygevoeg die - titel bevel argument om die proses titel te stel tydens die opstarten. # 21477
- trace_events:
- Bygevoeg prosesnaam metadata. # 21477
- Nuwe medewerkers bygevoeg
- code switches - Shelley Vohr
Wat is nuut in weergawe 10.0.0:
- Volledige ondersteuning vir N-API
- Maklik aan die gang met Time-Travel Debugging via 'n nuwe Visual Studio-kode uitbreiding
- TTD ondersteuning vir kragopwekkers en async funksies
- Ondersteuning vir inspekteurprotokol
- Verhoogde stabiliteit en ander verskillende verbeteringe
Wat is nuut in weergawe:
- async_hooks:
- spoor gebeurtenisse by async_hooks (Andreas Madsen) # 15538
- voeg verskaffer tipes vir die netto bediener (Andreas Madsen) # 17157
- konsole:
- console.debug kan nou buite die inspekteur gebruik word (Benjamin Zaslavsky) # 17033
- VVPA:
- upgrade libuv na 1.18.0 (cjihrig) # 17282
- pleister V8 tot 6.2.414.46 (Myles Borins) # 17206
- module:
- module.builtinModules sal 'n lys van ingeboude modules (Jon Moss) # 16386
- n-api:
- voeg bywerker by vir addons om die gebeurtenislus te kry (Anna Henningsen) # 17109
- proses:
- process.setUncaughtExceptionCaptureCallback kan nou gebruik word om gedrag aan te pas vir 'n onbeperkte uitsondering (Anna Henningsen) # 17159
- 'n Seinhanteerder kan nou die seinkode ontvang wat die hanteerder aangeskakel het. (Robert Rossmann) # 15606
- src:
- embedders kan nou Node :: CreatePlatform gebruik om 'n voorbeeld van NodePlatform (Cheng Zhao) # 16981 te skep
- stroom:
- writable.writableHighWaterMark en readable.readableHighWaterMark sal die waardes wat die stroomvoorwerp gekonfronteer is, terugbring met (Calvin Metcalf) # 12860
- Nuwe medewerkers bygevoeg
- Maclover7 Jon Moss
- guybedford Guy Bedford
- hashseed Yang Guo
Wat is nuut in weergawe 9.2.0:
- crypto:
- Ondersteuning gebou met beide 1.1.0 en 1.0.2 (David Benjamin) # 16130
- fs:
- fs.realpathSync.native en fs.realpath.native word nou blootgestel (Ben Noordhuis) # 15776
- proses:
- ontbloot process.ppid (cjihrig) # 16839
Wat is nuut in weergawe 8.5.0:
- bou:
- Momentopname word nou weer aangeskakel in V8 # 14875
- konsole:
- Implementeer minimale console.group (). # 14910
- VVPA:
- upgrade libuv na 1.14.1 # 14866
- update nghttp2 na v1.25.0 # 14955
- dns:
- Voeg verbatim opsie by dns.lookup (). As dit waar is, word resultate van die DNS-resolver geslaag soos dit is, sonder die herhuffing wat Node.js anders doen, wat IPv4-adresse voor IPv6-adresse plaas. # 14731
- fs:
- voeg fs.copyFile en fs.copyFileSync toe wat doeltreffender kopieer van lêers toelaat. # 15034
- inspekteur:
- Aktiveer async-stapspore # 13870
- module:
- Voeg ondersteuning vir ESM by. Dit is tans agter die - eksperimentele modules-vlag en vereis die .mjs-uitbreiding. nodus - eksperimente-modules index.mjs # 14369
- napi:
- implementeer belofte # 14365
- os:
- Voeg ondersteuning vir CIDR-notasie by die uitvoer van die networkInterfaces () -metode. # 14307
- perf_hooks:
- 'n Aanvanklike implementering van die Performance Timing API vir Node.js. Dit is dieselfde Performance Timing API wat deur moderne blaaiers geïmplementeer word met 'n aantal spesifieke eienskappe van Node.js. Die Gebruiker Timing-punt () en meet () API's word geïmplementeer. # 14680
- TLS:
- verskeie PFX in createSecureContext # 14793
- Nuwe medewerkers bygevoeg:
- BridgeAR - Ruben Bridgewater
Wat is nuut in weergawe 8.3.0:
- Die V8-enjin is opgegradeer na weergawe 6.0, wat 'n beduidende veranderende prestasieprofiel het.
- Ander noemenswaardige veranderinge:
- DNS:
- Onafhanklike DNS-resolver-instansies word nou ondersteun, met ondersteuning vir die kansellasie van die ooreenstemmende versoeke.
- N-API:
- Veelvuldige N-API funksies vir fouthantering is verander om foutkodes toe te wys.
- REPUBLIEK:
- Outo voltooiing ondersteuning vir vereiste () is verbeter.
- Nut:
- Die WHATWG Encoding Standard (Text Decoder en TextEncoder) is geïmplementeer as 'n eksperimentele funksie.
Wat is nuut in weergawe 8.1.3:
- Stream Twee regressies met die stroom module is opgelos:
- Die afrondings gebeurtenis sal nou altyd na die foutgebeurtenis uitgestuur word as een uitgestuur word: [0a9e96e86c] # 13850
- In die objek af kan leesbare strome weer ondefinieer word. [5840138e70] # 13760
Wat is nuut in weergawe 8.1.2:
- Bevestig gebroke process.release-eienskappe in 8.1.1 wat veroorsaak dat nie inheemse byvoegings op ander platforms as Windows saamgestel word nie. Dit is 'n oplossing in die Node.js-bouproses, dus daar is geen bykomende kodeverbintenis ingesluit bo 8.1.1 nie.
Wat is nuut in weergawe 7.7.1:
- [c8e34b61f6] - bou: voeg ontbrekende src / spoor koptekste (Daniel Bevenius) # 10851
- [96f55f9e59] - src: skuif trace_event.h sluit in interne koptekst (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: herstel TracingController opruiming (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: begin altyd opsporingsbeheerder in agent (Matt Loring) # 10507
- [54e55e05ca] - toets: maak toets-intl-no-icu-data sterker (Michael Zasso) # 10992
- [7b253eb3ed] - toets: verhoog strengheid vir toetsspoorgeleentheid (Rich Trott) # 11065
- [3dc4a5f1f4] - tracing: fix -Wunused-private-veld waarskuwing (Santiago Gimeno) # 10416
- [8a918bf411] - tracing: fix -Woordorde waarskuwing (Santiago Gimeno) # 10416
Wat is nuut in weergawe 7.4.0:
- buffer:
- Verbeter die prestasie van buffer toekenning met ~ 11%. (Brian White) # 10443
- Verbeter prestasie van Buffer.from () met ~ 50%. (Brian White) # 10443
- Dienste: Verbeter prestasie van EventEmitter.once () met ~ 27%. (Brian White) # 10445
- fs: Laat Uint8Array toe om fs-metodes te stuur waar buffers ondersteun word. (Anna Henningsen) # 10382
- http: Verbeter prestasie van http-bediener met ~ 7%. (Brian White) # 6533
- npm: Upgrade na v4.0.5 (Kat Marchan) # 10330
Wat is nuut in weergawe 7.2.1:
- buffer:
- Die runtime deprecation van die oproepbuffer () sonder nuwe verander. (Anna Henningsen) # 9529
- Vaste buffer.transcode () vir enkel-byte karakter enkodering na UCS2. (Anna Henningsen) # 9838
- belofte: --Trace-waarskuwings produseer nou nuttige stapelstrokies vir Belofte waarskuwings. (Anna Henningsen) # 9525
- repliseer: 'n fout opgelos wat die korrekte parsering van generatorfunksies voorkom. (Teddy Katz) # 9852
- V8: Vaste 'n belangrike voorbeeld van prestasie regressie. (Franziska Hinkel Mann) # 9730
Wat is nuut in weergawe 7.2.0:
- crypto: Die Decipher metodes setAuthTag () en setAAD gee dit nou weer.
- dns: Implementeer {ttl: true} vir resolve4 () en resolve6 ().
- libuv: Upgrade na v1.10.1
- Bevestig 'n potensiële buffer oorloop wanneer data geskryf word na konsole op Windows 10. (CVE-2016-9551)
- proses: 'n nuwe eksterne eiendom by die data wat deur memoryUsage () bygevoeg is.)
- tls: Vaste 'n geheue lek wanneer dit geskryf word in die ry op die TLS-verbinding wat tydens handdruk verwoes is.
- V8 (dep): Upgrade na v5.4.500.43
- v8: Die data wat deur getHeapStatistics () ontvang word, bevat nou drie nuwe velde: malloced_memory, peak_malloced_memory en does_zap_garbage.
Wat is nuut in weergawe 6.4.0:
- bou: zlib simbole en addisionele OpenSSL simbole word nou op Windows platforms blootgestel. (Alex Hultman) # 7983 en # 7576
- child_process, cluster: Forked child prosesse en cluster werkers ondersteun nou stdio configuration. (Colin Ihrig) # 7811 en # 7838
- child_process: argv [0] kan nou ingestel word op willekeurige waardes in geproeide prosesse. (Pat Pannuto) # 7696
- fs: fs.ReadStream stel nou die aantal grepe voor wat dit tot dusver gelees het. (Linus Unneback) # 7942
- repl: Die REPL ondersteun nou die redigeermodus. (Prins J Wesley) # 7275
- util: inspect () kan nou wêreldwyd geconfigureerd word met behulp van util.inspect.defaultOptions. (Romeinse Reiss) # 8013
Wat is nuut in weergawe 6.3.0:
- buffer: Bygevoeg buffer.swap64 () om swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- bou: Nuwe konfigurasie opsies is bygevoeg vir die bou van Node.js as 'n gedeelde biblioteek. (Stefan Budeanu) # 6994
- Die opsies is: --shared, --without-v8-platform & amp; without-bundel-V8.
- crypto: wortelsertifikate is opgedateer. (Ben Noord Huis) # 7363
- debugger: Die bediener adres is nou konfigureerbaar via --debug = :. (Ben Noord Huis) # 3316
- npm: Upgraded npm na v3.10.3 (Kat Marchan) # 7515 & amp; (Rebecca Turner) # 7410
- leeslyn: het die vinnige opsie by die leeslynkonstruksie bygevoeg. (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c breek nou uit oneindige loops sonder die Node.js-instansie te stop. (Anna Henningsen) # 6635
- src:
- Bygevoeg 'n knoop :: FreeEnvironment openbare C ++ API. (Cheng Zhao) # 3098
- Refactored benodig ('konstantes'), konstantes is nou direk vanaf hul onderskeie modules beskikbaar. (James M Snell) # 6534
- Stream: Verbeterde leesbare.read () prestasie met tot 70%. (Brian White) # 7077
- timers: setImmediate () is in sommige gevalle tot 150% vinniger. (Andras) # 6436
- util: Bygevoeg 'n breeklengte opsie vir util.inspect () om te bepaal hoe objekte oor lyne geformateer is. (cjihrig) # 7499
- v8-inspekteur: Eksperimentele ondersteuning is bygevoeg vir debugging Node.js oor die inspekteurprotokol. (Ali Ijaz Sheikh) # 6792
- Nota: hierdie funksie is eksperimenteel, en dit kan verander of verwyder word.
- U kan hierdie funksie probeer deur Node.js te laat loop met die --inspect flag.
Wat is nuut in weergawe 6.0.0:
- Buffer:
- Nuwe bufferkonstrueerders is bygevoeg # 4682 en # 5833.
- Bestaande Buffer () en SlowBuffer () -konstrueerders is in docs # 4682 en # 5833 verouder.
- Voorheen gedepreciseerde buffer API's is verwyder # 5048, # 4594.
- Verbeterde fouthantering # 4514.
- Die metode Buffer.prototype.lastIndexOf () is bygevoeg # 4846.
- Cluster:
- Werker uitgestuur as eerste argument in 'boodskap'-gebeurtenis # 5361.
- Die werker.exitedAfterDisconnect-eiendom vervang worker.suicide # 3743.
- Console:
- Oproep console.timeEnd () met 'n onbekende etiket stuur nou 'n proses waarskuwing eerder as om # 5901 te gooi.
- Crypto:
- Verbeterde fouthantering # 3100, # 5611.
- Vereenvoudigde Sertifikaat klas bindings # 5382.
- Verbeterde beheer oor FIPS modus # 5181.
- pbkdf2 verteer oorbelasting is afgekeur # 4047.
- Afhanklikhede:
- Herbegin gedeelde c-ares-bouondersteuning # 5775.
- V8 opgedateer na 5.0.71.35 # 6372.
- DNS:
- Voeg dns.resolvePtr () API om gewone DNS PTR-rekords # 4921 te soek.
- Domain:
- Duidelike stapel as geen fouthanterer # 4659.
- Events:
- Die item EventEmitter.prototype._events word nie meer van Object.prototype # 6092 verkry nie.
- Die EventEmitter.prototype.prependListener () en EventEmitter.protot.prependOnceListener () metodes is bygevoeg # 6032.
- Lêer Stelsel:
- Die fs.realpath () en fs.realpathSync () metodes is opgedateer om 'n doeltreffender libuv-gebaseerde implementering te gebruik. Hierdie verandering sluit in die verwydering van die kasargument en die metode kan nuwe foute # 3594 gooi.
- FS apis kan nou paaie aanvaar as buffer # 5616.
- Fouthantering en tik die verbeterings van die kontrole # 5616, # 5590, # 4518, # 3917.
- Fs.read se snoer koppelvlak is afgeskaf # 4525.
- http:
- 'clientError' kan nou gebruik word om persoonlike foute van 'n HTTP-bediener # 4557 terug te stuur.
- Modules:
- Huidige directory is nou prioriteit vir plaaslike navrae # 5689.
- Simboliese skakels word behou wanneer modules # 5950 vereis word.
- Net:
- DNS-wenke is nie meer impliciet ingestel # 6021.
- Verbeterde fouthantering en tipe kontrole # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET is gestop tot 10.7 # 6402.
- Pad:
- Verbeterde tipe kontrole # 5348.
- Proses:
- Stel proses waarskuwings API # 4782 in.
- Gooi uitsondering wanneer nie-funksie geslaag word na NextTick # 3860.
- Query String:
- Die voorwerp wat deur querystring.parse () ontvang word, word nie meer van Object.prototype # 6055 erf nie.
- read line:
- Sleutel inligting word onvoorwaardelik vrygestel # 6024.
- Geskiedenis kan nou eksplisiet gedeaktiveer word # 6352.
- REPUBLIEK:
- Opdrag na _ sal 'n waarskuwing # 5535 uitstuur.
- Uitdrukkings sal nie meer voltooi word as eval misluk nie # 6328.
- Timers:
- Ontvang vroeg wanneer terugbel nie 'n funksie is nie # 4362.
- Strome:
- nul is nou 'n ongeldige stuk om in objekmodus # 6170 te skryf.
- TLS:
- Hernoem 'clientError' na 'tlsClientError' # 4557.
- SHA1 gebruik vir sessionIdContext # 3866.
- TTY:
- Voorheen afgedankte setRawMode wrapper is verwyder # 2528.
- URL:
- Gebruikernaam en wagwoord sal deur url.resolve () verander word as die gasheer # 1480 verander.
- Util:
- Veranderinge in die formatering van fout voorwerpe # 4582.
- Die methode util._extend () is afgeneem # 4903
- Die metode util.log () is afgeneem # 6161.
- Windows:
- Windows XP en Vista word nie meer ondersteun nie # 5167.
- zlib:
- Meerdere verbeterings is gemaak aan Zlib verwerking # 5883 en # 5707.
Vereistes :
- Python
Kommentaar nie gevind