Node.js ist eine Open-Source- und vollständig kostenlose Software, die es Webentwicklern ermöglicht, skalierbare und schnelle Netzwerkprogramme zu entwickeln. Die Software Node.js basiert auf der JavaScript-Laufzeitumgebung von Chrome und ist äußerst effizient und leichtgewichtig, insbesondere weil sie ein nicht blockierendes, ereignisgesteuertes E / A-Modell verwendet.
Die oberste Plattform für die Ausführung von serverseitigem JavaScript-Code
Node.js wird derzeit als die beste Plattform für die Ausführung von serverseitigem JavaScript-Code angesehen, der in großen Unternehmen wie Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 und vielen anderen Anwendungen eingesetzt wird.
Obligatorisches Beispiel
Der folgende Code erstellt einen einfachen Webserver, der für jede Anfrage mit "Hello World" antwortet.
var http = require ('http');
http.createServer (Funktion (req, res)) {
res.writeHead (200, {'Content-Type': 'text / plain'});
res.end ('Hallo Welt');
}). listen (1337, '127.0.0.1');
console.log ('Server läuft unter http://127.0.0.1:1337/');
Um den HTTP-Server auszuführen, müssen Sie den obigen Code in eine Datei mit dem Namen & ldquot; example.js & rdquo; (ohne Anführungszeichen) und führe es mit dem Knotenbefehl von einem Terminalemulator aus:
% Knoten Beispiel.js
Server läuft unter http://127.0.0.1:1337/
Unterstützte Betriebssysteme
Node.js ist eine Multi-Plattform-Anwendung, die erfolgreich unter zahlreichen GNU / Linux-Distributionen getestet wurde, darunter Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware und andere wie auf den kommerziellen Betriebssystemen Mac OS X und Microsoft Windows. Sowohl 64-Bit- als auch 32-Bit-Befehlssatzarchitekturen werden zu diesem Zeitpunkt unterstützt.
Unter der Haube, Anforderungen und Verfügbarkeit
Wie bereits erwähnt, handelt es sich um eine Multi-Plattform-Software. Es kann als vorgefertigte Installationsprogramme für die Betriebssysteme Mac OS X, GNU / Linux und Microsoft Windows heruntergeladen werden, sowie ein universelles Quellarchiv, das auf praktisch jedem Betriebssystem kompiliert und installiert werden kann, auf dem Python unterstützt wird.
>Was ist neu in dieser Version:
- Konsole:
- Die console.timeLog () -Methode wurde implementiert. # 21312
- deps:
- Upgrade auf libuv 1.22.0. # 21731
- Upgrade auf ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- Unterstützung für das Übergeben von Timeout- und Agentenoptionen an http.request hinzugefügt. # 21204
- Inspektor:
- Zeigen Sie die ursprüngliche Konsolen-API in der Konsole require ('inspector') an. # 21659
- napi:
- Experimentelle Unterstützung für Funktionen, die sich mit Bigint-Zahlen befassen. # 21226
- Prozess:
- Die Methode process.hrtime.bigint () wurde implementiert. # 21256
- Das Befehlszeilenargument --title wurde hinzugefügt, um den Prozesstitel beim Start festzulegen. # 21477
- trace_events:
- Hinzugefügt process_name Metadaten. # 21477
- Neue Mitarbeiter hinzugefügt
- codebytere - Shelley Vohr
Was ist neu in Version 10.0.0:
- Volle Unterstützung für N-API
- Einfacher Einstieg in das Time-Travel-Debugging über eine neue Visual Studio Code Extension
- TTD-Unterstützung für Generatoren und asynchrone Funktionen
- Unterstützung für das Inspektorprotokoll
- Verbesserte Stabilität und andere Verbesserungen
Was ist neu in der Version:
- async_hooks:
- Trace-Ereignisse zu async_hooks hinzufügen (Andreas Madsen) # 15538
- Providertypen für Netzserver hinzufügen (Andreas Madsen) # 17157
- Konsole:
- console.debug kann nun außerhalb des Inspektors (Benjamin Zaslavsky) # 17033 verwendet werden
- deps:
- upgrade libuv auf 1.18.0 (cjihrig) # 17282
- Patch V8 bis 6.2.414.46 (Myles Borins) # 17206
- Modul:
- module.builtinModules gibt eine Liste der eingebauten Module (Jon Moss) # 16386 zurück
- n-api:
- Helfer für Addons hinzufügen, um die Ereignisschleife zu erhalten (Anna Henningsen) # 17109
- Prozess:
- process.setUncaughtExceptionCaptureCallback kann nun verwendet werden, um das Verhalten für --abort-on-uncaught-exception (Anna Henningsen) # 17159 anzupassen
- Ein Signal-Handler kann jetzt den Signalcode empfangen, der den Handler ausgelöst hat. (Robert Rossmann) # 15606
- src:
- Embedder können nun mit Node :: CreatePlatform eine Instanz von NodePlatform (Cheng Zhao) # 16981 erstellen
- stream:
- writable.writableHighWaterMark und lesable.readableHighWaterMark geben die Werte zurück, mit denen das Stream-Objekt instanziiert wurde (Calvin Metcalf) # 12860
- Neue Mitarbeiter hinzugefügt
- maclover7 Jon Moss
- guybedford Guy Bedford
- Hashsamen Yang Guo
Was ist neu in Version 9.2.0:
- crypto:
- Unterstützen Sie das Bauen mit sowohl 1.1.0 als auch 1.0.2 (David Benjamin) # 16130
- fs:
- fs.realpathSync.native und fs.realpath.native werden jetzt angezeigt (Ben Noordhuis) # 15776
- Prozess:
- expose process.ppid (cjihrig) # 16839
Was ist neu in Version 8.5.0:
- bauen:
- Snapshots werden jetzt in V8 # 14875 wieder aktiviert
- Konsole:
- Implementieren Sie minimal console.group (). # 14910
- deps:
- upgrade libuv auf 1.14.1 # 14866
- Aktualisieren Sie nghttp2 auf v1.25.0 # 14955
- dns:
- Fügen Sie die Option "verbatim" zu dns.lookup () hinzu. Wenn dies der Fall ist, werden die Ergebnisse des DNS-Resolvers unverändert weitergegeben, ohne dass Node.js anders als IPv6-Adressen IPv6-Adressen zugewiesen wird. # 14731
- fs:
- Fügen Sie fs.copyFile und fs.copyFileSync hinzu, um ein effizienteres Kopieren von Dateien zu ermöglichen. # 15034
- Inspektor:
- Aktivieren Sie Async-Stack-Traces # 13870
- Modul:
- Fügen Sie Unterstützung für ESM hinzu. Dies steht derzeit hinter dem Flag --experimental-modules und erfordert die Erweiterung .mjs. Knoten --experimentelle Module index.mjs # 14369
- napi:
- implementieren Versprechen # 14365
- os:
- Fügen Sie der Ausgabe der networkInterfaces () -Methode Unterstützung für die CIDR-Notation hinzu. # 14307
- perf_hooks:
- Eine erste Implementierung der Performance Timing-API für Node.js. Dies ist dieselbe Performance-Timing-API, die von modernen Browsern mit einer Reihe von Node.js-spezifischen Eigenschaften implementiert wird. Die User Timing mark () und measure () APIs sind implementiert. # 14680
- tls:
- mehrere PFX in createSecureContext # 14793
- Neue Mitarbeiter hinzugefügt:
- BridgeAR - Ruben Bridgewater
Was ist neu in Version 8.3.0:
- Die V8-Engine wurde auf Version 6.0 aktualisiert, die ein wesentlich verändertes Leistungsprofil aufweist.
- Andere bemerkenswerte Änderungen:
- DNS:
- Unabhängige DNS-Resolver-Instanzen werden jetzt unterstützt, mit Unterstützung für das Abbrechen der entsprechenden Anfragen.
- N-API:
- Mehrere N-API-Funktionen zur Fehlerbehandlung wurden geändert, um die Zuweisung von Fehlercodes zu unterstützen.
- REPL:
- Die Autovervollständigungsunterstützung für require () wurde verbessert.
- Dienstprogramme:
- Der WHATWG Encoding Standard (TextDecoder und TextEncoder) wurde als experimentelles Feature implementiert.
Was ist neu in Version 8.1.3:
- Stream Zwei Regressionen mit dem Stream-Modul wurden behoben:
- Das Ende-Ereignis wird jetzt immer nach dem Fehlerereignis ausgegeben, wenn eines ausgegeben wird: [0a9e96e86c] # 13850
- Im Objektmodus können lesbare Streams jetzt undefined wieder verwenden. [5840138e70] # 13760
Was ist neu in Version 8.1.2:
- Behebung der kaputten process.release-Eigenschaften in 8.1.1, was dazu führte, dass native Add-Ons auf anderen Plattformen als Windows nicht kompiliert werden konnten. Dies ist ein Fehler im Build-Prozess Node.js, so dass keine zusätzlichen Code-Commits über 8.1.1 vorhanden sind.
Was ist neu in Version 7.7.1:
- [c8e34b61f6] - build: füge fehlende src / Tracing-Header-Dateien hinzu (Daniel Bevenius) # 10851
- [96f55f9e59] - src: move trace_event.h include zum internen Header (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: Reparieren des TracingControllers (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: Trace-Controller im Agenten immer initialisieren (Matt Loring) # 10507
- [54e55e05ca] - test: mache test-intl-no-icu-data robuster (Michael Zasso) # 10992
- [7b253eb3ed] - test: Strenge für Test-Trace-Event erhöhen (Rich Trott) # 11065
- [3dc4a5f1f4] - Tracing: fix - Private-field Warnung (Santiago Gimeno) - # 10416
- [8a918bf411] - tracing: fix - Warnung bei der Warnung (Santiago Gimeno) # 10416
Was ist neu in Version 7.4.0:
- Puffer:
- Verbessern Sie die Leistung der Pufferzuweisung um ~ 11%. (Brian White) # 10443
- Verbessern Sie die Leistung von Buffer.from () um ~ 50%. (Brian White) # 10443
- events: Verbessern Sie die Leistung von EventEmitter.once () um ~ 27%. (Brian White) # 10445
- fs: Zulassen, dass Uint8Array an fs-Methoden übergeben wird, wo Puffer unterstützt werden. (Anna Henningsen) # 10382
- http: Verbessern Sie die Leistung des http-Servers um ~ 7%. (Brian White) # 6533
- npm: Upgrade auf v4.0.5 (Kat Marchan) # 10330
Was ist neu in Version 7.2.1:
- Puffer:
- Die Laufzeitverzögerung des Aufrufs von Buffer () ohne new wurde zurückversetzt. (Anna Henningsen) # 9529
- Fester buffer.transcode () für Einzelbyte-Zeichenkodierungen zu UCS2. (Anna Henningsen) # 9838
- promise: --trace-warnings erzeugt nun nützliche Stacktraces für Promise-Warnungen. (Anna Henningsen) # 9525
- repl: Ein Fehler wurde behoben, der das korrekte Parsen von Generatorfunktionen verhinderte. (Teddy Katz) # 9852
- V8: Es wurde ein signifikanter Fall der Leistungsregression behoben. (Franziska Hinkelmann) # 9730
Was ist neu in Version 7.2.0:
- crypto: Die Decipher-Methoden setAuthTag () und setAAD geben das jetzt zurück.
- dns: Implementiert {ttl: true} für resolve4 () und resolve6 ().
- libuv: Upgrade auf v1.10.1
- Ein möglicher Pufferüberlauf beim Schreiben von Daten in die Konsole unter Windows 10 wurde behoben. (CVE-2016-9551)
- process: Zu den von memoryUsage () zurückgegebenen Daten wurde eine neue externe Eigenschaft hinzugefügt.
- tls: Ein Speicherleck wurde behoben, wenn Schreibvorgänge in einer TLS-Verbindung in die Warteschlange gestellt wurden, die während des Handshakes zerstört wurde.
- V8 (ab): Upgrade auf v5.4.500.43
- v8: Die von getHeapStatistics () zurückgegebenen Daten enthalten jetzt drei neue Felder: malloced_memory, peak_malloced_memory und does_zap_garbage.
Was ist neu in Version 6.4.0:
- build: zlib-Symbole und zusätzliche OpenSSL-Symbole sind jetzt auf Windows-Plattformen verfügbar. (Alex Hultman) # 7983 und # 7576
- child_process, cluster: Gespaltene untergeordnete Prozesse und Cluster-Worker unterstützen jetzt die stdio-Konfiguration. (Colin Ihrig) # 7811 und # 7838
- child_process: argv [0] kann jetzt in erzeugten Prozessen auf beliebige Werte gesetzt werden. (Pat Pannuto) # 7696
- fs: fs.ReadStream zeigt jetzt die Anzahl der Bytes, die es bisher gelesen hat. (Linus Unneback) # 7942
- repl: Die REPL unterstützt jetzt den Editor-Modus. (Prinz J Wesley) # 7275
- util: inspect () kann nun global mit util.inspect.defaultOptions konfiguriert werden. (Roman Reiss) # 8013
Was ist neu in Version 6.3.0:
- buffer: Hinzugefügt buffer.swap64 (), um swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- build: Neue Konfigurationsoptionen wurden hinzugefügt, um Node.js als gemeinsam genutzte Bibliothek zu erstellen. (Stefan Budeanu) # 6994
- Die Optionen sind: --shared, --without-v8-platform & amp; --without-bunded-v8.
- crypto: Root-Zertifikate wurden aktualisiert. (Ben Noordhuis) # 7363
- Debugger: Die Serveradresse ist jetzt über --debug =: konfigurierbar. (Ben Noordhuis) # 3316
- npm: Verbesserte npm zu v3.10.3 (Kat Marchan) # 7515 & amp; (Rebecca Turner) # 7410
- readline: Dem Konstruktor von readline wurde die Option prompt hinzugefügt. (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c wird jetzt aus Endlosschleifen ausbrechen, ohne die Node.js-Instanz anzuhalten. (Anna Henningsen) # 6635
- src:
- Eine öffentliche public C ++ - API von node :: FreeEnvironment wurde hinzugefügt. (Cheng Zhao) # 3098
- Refactored require ('Konstanten'), Konstanten sind jetzt direkt von ihren jeweiligen Modulen verfügbar. (James M Snell) # 6534
- stream: Verbesserte lesable.read () -Leistung um bis zu 70%. (Brian White) # 7077
- Timer: setImmediate () ist jetzt in manchen Situationen bis zu 150% schneller. (Andras) # 6436
- util: Der Option util.inspect () wurde die Option breakLength hinzugefügt, um zu steuern, wie Objekte über mehrere Zeilen hinweg formatiert werden. (cjihrig) # 7499
- v8-inspector: Experimentelle Unterstützung wurde hinzugefügt, um Node.js über das Inspector-Protokoll zu debuggen. (Ali Ijaz Shaykh) # 6792
- Hinweis: Diese Funktion ist experimentell und könnte geändert oder entfernt werden.
- Sie können diese Funktion ausprobieren, indem Sie Node.js mit dem Flag --inspect ausführen.
Was ist neu in Version 6.0.0:
- Puffer:
- Neue Pufferkonstruktoren wurden hinzugefügt # 4682 und # 5833.
- Vorhandene Buffer () - und SlowBuffer () - Konstruktoren sind in den Dokumenten # 4682 und # 5833 veraltet.
- Zuvor veraltete Puffer-APIs werden entfernt # 5048, # 4594.
- Verbesserte Fehlerbehandlung # 4514.
- Die Buffer.prototype.lastIndexOf () -Methode wurde # 4846 hinzugefügt.
- Cluster:
- Worker wird als erstes Argument im Ereignis 'Nachricht' # 5361 ausgegeben.
- Die Eigenschaft worker.exitedAfterDisconnect ersetzt worker.suicide # 3743.
- Konsole:
- Beim Aufruf von console.timeEnd () mit einem unbekannten Label wird jetzt eine Prozesswarnung ausgegeben, anstatt # 5901 zu werfen.
- Krypto:
- Verbesserte Fehlerbehandlung # 3100, # 5611.
- Bindings der vereinfachten Zertifikatsklasse # 5382.
- Verbesserte Kontrolle über den FIPS-Modus # 5181.
- pbkdf2 digest overloading ist veraltet # 4047.
- Abhängigkeiten:
- Wiederaufnahme der gemeinsamen c-ares Build-Unterstützung # 5775.
- V8 aktualisiert auf 5.0.71.35 # 6372.
- DNS:
- Fügen Sie die dns.resolvePtr () API hinzu, um einfache DNS PTR Records # 4921 abzufragen.
- Domains:
- Löschen Sie den Stapel, wenn kein Fehlerhandler # 4659.
- Ereignisse:
- Das EventEmitter.prototype._events-Objekt erbt nicht mehr von Object.prototype # 6092.
- Die Methoden EventEmitter.prototype.prependListener () und EventEmitter.prototype.prependOnceListener () wurden # 6032 hinzugefügt.
- Dateisystem:
- Die Methoden fs.realpath () und fs.realpathSync () wurden aktualisiert, um eine effizientere Libuv-basierte Implementierung zu verwenden. Diese Änderung beinhaltet das Entfernen des Cache-Arguments und die Methode kann neue Fehler # 3594 auslösen.
- FS apis kann jetzt Pfade als Puffer # 5616 akzeptieren und zurückgeben.
- Fehlerbehandlung und Verbesserungen bei der Typprüfung # 5616, # 5590, # 4518, # 3917.
- Die Zeichenfolgenschnittstelle von fs.read ist veraltet # 4525.
- HTTP:
- 'clientError' kann jetzt verwendet werden, um benutzerdefinierte Fehler von einem HTTP-Server # 4557 zurückzugeben.
- Module:
- Das aktuelle Verzeichnis ist jetzt für lokale Suchvorgänge # 5689 priorisiert.
- Symbolische Links bleiben erhalten, wenn Module # 5950 benötigt werden.
- Netz:
- DNS-Hinweise stellen nicht länger implizit # 6021 ein.
- Verbesserte Fehlerbehandlung und Typprüfung # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET wurde auf 10.7 # 6402 erhöht.
- Pfad:
- Verbesserte Typprüfung # 5348.
- Prozess:
- Einführung der Prozesswarnung API # 4782.
- Ausnahme wird ausgelöst, wenn keine Funktion an nextTick # 3860 übergeben wurde.
- Querystring:
- Das von querystring.parse () zurückgegebene Objekt erbt nicht mehr von Object.prototype # 6055.
- Readline:
- Die Schlüsselinformation wird bedingungslos ausgegeben # 6024.
- Der Verlauf kann jetzt explizit deaktiviert werden # 6352.
- REPL:
- Zuweisung an _ wird eine Warnung # 5535 ausgeben.
- Ausdrücke werden nicht mehr vervollständigt, wenn eval fehlschlägt # 6328.
- Timer:
- Frühzeitig fehlschlagen, wenn der Rückruf keine Funktion ist # 4362.
- Ströme:
- null ist jetzt ein ungültiger Chunk zum Schreiben in den Objektmodus # 6170.
- TLS:
- Benennen Sie 'clientError' in 'tlsClientError' # 4557. um
- SHA1 wurde für den SessionIdContext # 3866 verwendet.
- TTY:
- Zuvor veralteter setRawMode-Wrapper wurde entfernt # 2528.
- URL:
- Benutzername und Passwort werden von url.resolve () gelöscht, wenn der Host # 1480 ändert.
- Nützlichkeit:
- Ändert die Formatierung des Fehlerobjekts # 4582.
- Die util._extend () -Methode wurde veraltet # 4903
- Die util.log () -Methode wurde veraltet # 6161.
- Windows:
- Windows XP und Vista werden nicht mehr unterstützt # 5167.
- Zlib:
- Die Zlib-Verarbeitung # 5883 und # 5707 wurde mehrfach verbessert.
Anforderungen :
- Python
Kommentare nicht gefunden