Node.js is een open source en geheel gratis software waarmee webontwikkelaars schaalbare en snelle netwerkprogramma's kunnen bouwen. Omdat het gebaseerd is op de JavaScript-runtime van Chrome, is de Node.js-software uiterst efficiënt en lichtgewicht, vooral omdat het een niet-blokkerend, gebeurtenisgestuurd I / O-model gebruikt.
Het topplatform voor server-side JavaScript-code
Node.js wordt momenteel beschouwd als het topplatform voor het uitvoeren van server-side JavaScript-code, dat wordt gebruikt in productie in grote bedrijven zoals Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 en nog veel meer.
Verplicht voorbeeld
De volgende code zal een eenvoudige webserver creëren die antwoordt met "Hello World" voor elke aanvraag.
var http = require ('http');
http.createServer (functie (req, res) {
res.writeHead (200, {'Content-type': 'text / plain'});
res.end ('Hallo wereldn');
}). listen (1337, '127.0.0.1');
console.log ('Server draait op http://127.0.0.1:1337/');
Als u de HTTP-server wilt uitvoeren, moet u de bovenstaande code invoeren in een bestand met de naam & ldquo; example.js & rdquo; (zonder aanhalingstekens) en voer het uit met het knooppuntcommando van een terminalemulator:
% node example.js
Server draait op http://127.0.0.1:1337/
Ondersteunde besturingssystemen
Node.js is een multi-platformtoepassing die met succes is getest onder verschillende GNU / Linux-distributies, waaronder Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware en anderen. zoals op de commerciële Mac OS X- en Microsoft Windows-besturingssystemen. Zowel 64-bit en 32-bit instructieset architecturen worden op dit moment ondersteund.
Onder de motorkap, eisen en beschikbaarheid
Zoals gezegd, dit is een multi-platform software. Het kan worden gedownload als vooraf gemaakte installatieprogramma's voor de Mac OS X-, GNU / Linux- en Microsoft Windows-besturingssystemen, evenals een universeel bronarchief dat kan worden gecompileerd en geïnstalleerd op vrijwel elk besturingssysteem waarop Python wordt ondersteund.
>Wat is nieuw in deze release:
- console:
- De console.timeLog () -methode is geïmplementeerd. # 21312
- deps:
- Voer een upgrade uit naar libuv 1.22.0. # 21731
- Upgrade naar ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- Ondersteuning toegevoegd voor het doorgeven van beide timeout- en agentopties aan http.request. # 21204
- inspecteur:
- Open de originele console-API op verzoek ('inspector'). console. # 21659
- napi:
- Experimentele ondersteuning toegevoegd voor functies die te maken hebben met bigint-nummers. # 21226
- proces:
- De methode process.hrtime.bigint () is geïmplementeerd. # 21256
- Het opdrachtitem -title-opdrachtregel is toegevoegd om de procestitel tijdens het opstarten in te stellen. # 21477
- trace_events:
- Procesnaammetagegevens toegevoegd. # 21477
- Nieuwe bijdragers toegevoegd
- codebytere - Shelley Vohr
Wat is nieuw in versie 10.0.0:
- Volledige ondersteuning voor N-API
- Eenvoudig aan de slag met Time-Travel Debugging via een nieuwe Visual Studio-codelextensie
- TTD-ondersteuning voor generators en async-functies
- Ondersteuning voor Inspector-protocol
- Meer stabiliteit en andere gesorteerde verbeteringen
Wat is nieuw in versie:
- async_hooks:
- trace-gebeurtenissen toevoegen aan async_hooks (Andreas Madsen) # 15538
- voeg providertypen toe voor net-server (Andreas Madsen) # 17157
- console:
- console.debug kan nu buiten de inspecteur (Benjamin Zaslavsky) # 17033 worden gebruikt
- deps:
- upgrade libuv naar 1.18.0 (cjihrig) # 17282
- patch V8 tot 6.2.414.46 (Myles Borins) # 17206
- module:
- module.builtinModules retourneert een lijst met ingebouwde modules (Jon Moss) # 16386
- n-api:
- voeg helper toe voor add-ons om de gebeurtenislus (Anna Henningsen) # 17109 te krijgen
- proces:
- process.setUncaughtExceptionCaptureCallback kan nu worden gebruikt om gedrag aan te passen voor --abort-on-uncaught-exception (Anna Henningsen) # 17159
- Een signaalhandler kan nu de signaalcode ontvangen die de handler heeft geactiveerd. (Robert Rossmann) # 15606
- src:
- embedders kunnen nu Node :: CreatePlatform gebruiken om een exemplaar van NodePlatform (Cheng Zhao) # 16981 te maken
- stream:
- writable.writableHighWaterMark and readable.readableHighWaterMark retourneert de waarden waarmee het stream-object is geïnstantieerd (Calvin Metcalf) # 12860
- Nieuwe bijdragers toegevoegd
- maclover7 Jon Moss
- Guybedford Guy Bedford
- hashzaad Yang Guo
Wat is nieuw in versie 9.2.0:
- crypto:
- Ondersteuning voor bouwen met zowel 1.1.0 en 1.0.2 (David Benjamin) # 16130
- fs:
- fs.realpathSync.native en fs.realpath.native zijn nu zichtbaar (Ben Noordhuis) # 15776
- proces:
- open process.ppid (cjihrig) # 16839
Wat is nieuw in versie 8.5.0:
- build:
- Snapshots worden nu opnieuw ingeschakeld in V8 # 14875
- console:
- Implementeer minimale console.group (). # 14910
- deps:
- upgrade libuv naar 1.14.1 # 14866
- update nghttp2 naar v1.25.0 # 14955
- dns:
- Voeg woordelijke optie toe aan dns.lookup (). Wanneer dit waar is, worden de resultaten van de DNS-resolver in de huidige vorm doorgegeven, zonder dat de wijziging van dat Node.js anders IPv4-adressen vóór IPv6-adressen plaatst. # 14731
- fs:
- voeg fs.copyFile en fs.copyFileSync toe wat voor efficiënter kopiëren van bestanden zorgt. # 15034
- inspecteur:
- Schakel asynchrone stacksporen # 13870 in
- module:
- Ondersteuning toevoegen voor ESM. Dit bevindt zich momenteel achter de vlag --experimental-modules en heeft de extensie .mjs nodig. knooppunt --experimental-modules index.mjs # 14369
- napi:
- implementeer belofte # 14365
- os:
- Ondersteuning toevoegen voor CIDR-notatie aan de uitvoer van de methode networkInterfaces (). # 14307
- perf_hooks:
- Een eerste implementatie van de Performance Timing API voor Node.js. Dit is dezelfde Performance Timing-API die wordt geïmplementeerd door moderne browsers met een aantal specifieke Node.js-eigenschappen. De API's User Timing mark () en measure () zijn geïmplementeerd. # 14680
- tls:
- meerdere PFX in createSecureContext # 14793
- Nieuwe bijdragers toegevoegd:
- BridgeAR - Ruben Bridgewater
Wat is nieuw in versie 8.3.0:
- De V8-engine is geüpgraded naar versie 6.0, die een aanzienlijk gewijzigd prestatieprofiel heeft.
- Andere opmerkelijke wijzigingen:
- DNS:
- Onafhankelijke DNS-resolverinstanties worden nu ondersteund, met ondersteuning voor het annuleren van de overeenkomstige verzoeken.
- N-API:
- Meerdere N-API-functies voor foutafhandeling zijn gewijzigd om het toewijzen van foutcodes te ondersteunen.
- REPL:
- Ondersteuning voor automatisch aanvullen van require () is verbeterd.
- Utilities:
- De WHATWG-coderingsstandaard (TextDecoder en TextEncoder) is geïmplementeerd als een experimentele functie.
Wat is nieuw in versie 8.1.3:
- Stream Twee regressies met de streammodule zijn gerepareerd:
- De finishgebeurtenis wordt nu altijd uitgezonden na de foutgebeurtenis als er een wordt uitgezonden: [0a9e96e86c] # 13850
- In de objectmodus kunnen leesbare streams nu opnieuw ongedefinieerd worden gebruikt. [5840138e70] # 13760
Wat is nieuw in versie 8.1.2:
- Herstel de eigenschappen van broken process.release in 8.1.1 waardoor het niet lukt om native add-ons op andere platforms dan Windows te compileren. Dit is een oplossing in het buildproces van Node.js, dus er zijn geen extra code-commits opgenomen bovenop 8.1.1.
Wat is nieuw in versie 7.7.1:
- [c8e34b61f6] - build: voeg ontbrekende src / tracing header-bestanden toe (Daniel Bevenius) # 10851
- [96f55f9e59] - src: move trace_event.h include to internal header (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: fix TracingController opruimen (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: initialiseer altijd de traceercontroller in agent (Matt Loring) # 10507
- [54e55e05ca] - test: maak test-intl-geen-icu-gegevens robuuster (Michael Zasso) # 10992
- [7b253eb3ed] - test: verhoog de striktheid voor test-trace-event (Rich Trott) # 11065
- [3dc4a5f1f4] - tracing: fix -Ongewenste-private-field waarschuwing (Santiago Gimeno) # 10416
- [8a918bf411] - tracing: fix -Wreorder warning (Santiago Gimeno) # 10416
Wat is nieuw in versie 7.4.0:
- buffer:
- Verbeter de prestaties van Buffertoewijzing met ~ 11%. (Brian White) # 10443
- Verbeter de prestaties van Buffer.from () met ~ 50%. (Brian White) # 10443
- evenementen: verbeter de prestaties van EventEmitter.once () met ~ 27%. (Brian White) # 10445
- fs: Laat Uint8Array door naar fs-methoden waarbij Buffers worden ondersteund. (Anna Henningsen) # 10382
- http: Verbeter de prestaties van de http-server met ~ 7%. (Brian White) # 6533
- npm: upgrade naar v4.0.5 (Kat Marchan) # 10330
Wat is nieuw in versie 7.2.1:
- buffer:
- Keerde de runtime-beëindiging van het aanroepen van Buffer () zonder nieuw terug. (Anna Henningsen) # 9529
- Fixed buffer.transcode () voor codering van één byte naar UCS2. (Anna Henningsen) # 9838
- belofte: --trace-waarschuwingen produceren nu nuttige stacktraces voor Promise-waarschuwingen. (Anna Henningsen) # 9525
- repl: Probleem opgelost dat een correcte ontleding van generatorfuncties verhinderde. (Teddy Katz) # 9852
- V8: een belangrijk voorbeeld van prestatieregressie gerepareerd. (Franziska Hinkelmann) # 9730
Wat is nieuw in versie 7.2.0:
- crypto: de ontcijferingsmethoden setAuthTag () en setAAD retourneren dit nu.
- dns: {ttl: true} geïmplementeerd voor resolve4 () en resolve6 ().
- libuv: Upgrade naar v1.10.1
- Een mogelijke bufferoverloop opgelost bij het schrijven van gegevens naar console op Windows 10. (CVE-2016-9551)
- proces: een nieuwe externe eigenschap toegevoegd aan de gegevens geretourneerd door memoryUsage ().
- tls: een geheugenlek opgelost toen het schrijven in de wachtrij stond op de TLS-verbinding die tijdens de handshake werd vernietigd.
- V8 (dep): upgrade naar v5.4.500.43
- v8: de gegevens die worden geretourneerd door getHeapStatistics () bevatten nu drie nieuwe velden: malloced_memory, peak_malloced_memory en does_zap_garbage.
Wat is nieuw in versie 6.4.0:
- build: zlib-symbolen en extra OpenSSL-symbolen worden nu weergegeven op Windows-platforms. (Alex Hultman) # 7983 en # 7576
- child_process, cluster: Forked-kinderprocessen en clusterwerkers ondersteunen nu stdio-configuratie. (Colin Ihrig) # 7811 en # 7838
- child_process: argv [0] kan nu worden ingesteld op willekeurige waarden in voortgebrachte processen. (Pat Pannuto) # 7696
- fs: fs.ReadStream legt nu het aantal bytes bloot dat tot nu toe is gelezen. (Linus Unneback) # 7942
- repl: de REPL ondersteunt nu de editor-modus. (Prince J Wesley) # 7275
- util: inspect () kan nu globaal worden geconfigureerd met behulp van util.inspect.defaultOptions. (Roman Reiss) # 8013
Wat is nieuw in versie 6.3.0:
- buffer: buffer.swap64 () toegevoegd om swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- build: nieuwe configuratie-opties zijn toegevoegd om Node.js te bouwen als een gedeelde bibliotheek. (Stefan Budeanu) # 6994
- De opties zijn: - Gedeeld, - Zonder V8-platform & amp; --without gebundelde-v8.
- crypto: basiscertificaten zijn bijgewerkt. (Ben Noordhuis) # 7363
- Debugger: het serveradres kan nu worden geconfigureerd via --debug = :. (Ben Noordhuis) # 3316
- npm: opgewaardeerd npm tot v3.10.3 (Kat Marchan) # 7515 & amp; (Rebecca Turner) # 7410
- leesregel: de promptoptie toegevoegd aan de readline-constructor. (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c doorbreekt nu oneindige lussen zonder de instantie Node.js te stoppen. (Anna Henningsen) # 6635
- src:
- Toegevoegd een knoop :: FreeEnvironment openbare C ++ API. (Cheng Zhao) # 3098
- Refactored vereisen ('constanten'), constanten zijn nu direct beschikbaar vanuit hun respectievelijke modules. (James M Snell) # 6534
- stream: Verbeterde leesbare.lees () prestaties met maximaal 70%. (Brian White) # 7077
- timers: setImmediate () is in sommige situaties nu tot 150% sneller. (Andras) # 6436
- util: een breakLength-optie toegevoegd aan util.inspect () om te bepalen hoe objecten over lijnen worden opgemaakt. (cjihrig) # 7499
- v8-inspecteur: experimentele ondersteuning is toegevoegd voor het debuggen van Node.js via het inspector-protocol. (Ali Ijaz Sheikh) # 6792
- Opmerking: deze functie is experimenteel en kan worden gewijzigd of verwijderd.
- U kunt deze functie proberen door Node.js uit te voeren met de vlag --inspect.
Wat is nieuw in versie 6.0.0:
- Buffer:
- Nieuwe Buffer-constructeurs zijn # 4682 en # 5833 toegevoegd.
- Bestaande buffers () en SlowBuffer () -constructeurs zijn verouderd in de documenten # 4682 en # 5833.
- Eerder verouderde buffer-API's zijn verwijderd # 5048, # 4594.
- Verbeterde foutafhandeling # 4514.
- De methode Buffer.prototype.lastIndexOf () is # 4846 toegevoegd.
- Cluster:
- Werknemer als eerste argument uitgezonden in 'message' event # 5361.
- De eigenschap worker.exitedAfterDisconnect vervangt worker.suicide # 3743.
- Console:
- Het aanroepen van console.timeEnd () met een onbekend label geeft nu een proceswaarschuwing af in plaats van # 5901.
- Crypto:
- Verbeterde foutafhandeling # 3100, # 5611.
- Vereenvoudigde klassebindingen voor certificaten # 5382.
- Verbeterde controle over FIPS-modus # 5181.
- pbkdf2 digest overloading is gedeprecieerd # 4047.
- Bijgebouwen:
- Herintroduceer gedeelde c-are build support # 5775.
- V8 bijgewerkt naar 5.0.71.35 # 6372.
- DNS:
- Voeg dns.resolvePtr () API toe om pure DNS-PTR-records # 4921 op te vragen.
- Domeinen:
- Stapel wissen zonder fouthandler # 4659.
- Events:
- Het EventEmitter.prototype._events-object neemt niet langer over van Object.prototype # 6092.
- De methoden EventEmitter.prototype.prependListener () en EventEmitter.prototype.prependOnceListener () zijn toegevoegd # 6032.
- Bestandssysteem:
- De methoden fs.realpath () en fs.realpathSync () zijn bijgewerkt om een efficiëntere libuv-gebaseerde implementatie te gebruiken. Deze wijziging omvat het verwijderen van het cacheargument en de methode kan nieuwe fouten # 3594 opleveren.
- FS apis kunnen nu paden accepteren en retourneren als Buffers # 5616.
- Foutafhandeling en verbeteringen typetype # 5616, # 5590, # 4518, # 3917.
- de string-interface van fs.read is # 4525 gedeprecieerd.
- HTTP:
- 'clientError' kan nu worden gebruikt om aangepaste fouten te retourneren van een HTTP-server # 4557.
- Modules:
- De huidige map krijgt nu prioriteit voor lokale zoekopdrachten # 5689.
- Symbolische koppelingen blijven behouden wanneer modules # 5950 vereist zijn.
- Net:
- DNS-hints stellen niet langer impliciet # 6021 in.
- Verbeterde foutafhandeling en typecontrole # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET is opgetreden tot 10.7 # 6402.
- Pad:
- Verbeterde typecontrole # 5348.
- Process:
- Introduceer proceswaarschuwingen API # 4782.
- Gooi uitzondering wanneer niet-functie doorgegeven aan nextTick # 3860.
- QueryString:
- Het object dat wordt geretourneerd door querystring.parse () neemt niet langer over van Object.prototype # 6055.
- Readline:
- Sleutelinformatie wordt onvoorwaardelijk uitgezonden # 6024.
- Geschiedenis kan nu expliciet worden uitgeschakeld # 6352.
- REPL:
- Toewijzing aan _ geeft een waarschuwing # 5535.
- Expressies worden niet meer voltooid wanneer eval # 6328 mislukt.
- Timers:
- Vroegtijdig mislukken als terugbellen geen functie is # 4362.
- Streams:
- null is nu een ongeldig blok om te schrijven in objectmodus # 6170.
- TLS:
- Naam 'clientError' wijzigen in 'tlsClientError' # 4557.
- SHA1 gebruikt voor sessionIdContext # 3866.
- TTY
- Eerder verouderde setRawMode-wrapper is # 2528 verwijderd.
- URL:
- Gebruikersnaam en wachtwoord worden verwijderd door url.resolve () als de host # 1480 verandert.
- Util:
- Wijzigingen in foutobjectopmaak # 4582.
- De methode util._extend () is verouderd # 4903
- De methode util.log () is verouderd # 6161.
- Windows:
- Windows XP en Vista worden niet langer ondersteund # 5167.
- Zlib:
- Er zijn meerdere verbeteringen aangebracht aan Zlib-verwerking # 5883 en # 5707.
Eisen
- Python
Reacties niet gevonden