Node.js je open source a zcela svobodný software, který umožňuje vývojářům webu vytvářet škálovatelné a rychlé síťové programy. Být založený na běhu jazyka JavaScript v jazyce Chrome, software Node.js je mimořádně efektivní a lehký, zejména proto, že využívá neblokující model I / O založený na událostech.
Nejvyšší platforma pro spouštění kódu JavaScript na straně serveru
Node.js se v současné době považuje za nejvyspělejší platformu pro spouštění javascriptového kódu na straně serveru a používá se ve výrobě ve velkých společnostech, jako je Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 a mnoho dalších.
Povinný příklad
Následující kód vytvoří jednoduchý webový server, který reaguje s "Hello World" pro každou žádost.
var http = vyžaduje ("http");
http.createServer (funkce (req, res) {
res.writeHead (200, {'Content-Type': 'text / plain'));
res.end ('Hello Worldn');
}) poslouchat (1337, '127.0.0.1');
console.log ('Server běží na http://127.0.0.1:1337/');
Chcete-li spustit server HTTP, budete muset výše uvedený kód do souboru s názvem & ldquo; example.js & rdquo; (bez uvozovek) a spusťte jej pomocí příkazu uzlu z emulátoru terminálu:
% node example.js
Server běží na adrese http://127.0.0.1:1337/
Podporované operační systémy
Node.js je multiplatformní aplikace, která byla úspěšně testována v rámci mnoha distribucí GNU / Linux, včetně Debian, Ubuntu, Arch Linuxu, Fedory, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware a dalších. jako v komerčních operačních systémech Mac OS X a Microsoft Windows. V současné době jsou podporovány architektury 64bitových i 32bitových sad instrukcí.
Pod kapotou, požadavky a dostupnost
Jak bylo zmíněno, je to multiplatformní software. Lze jej stáhnout jako předinstalované instalační systémy pro operační systémy Mac OS X, GNU / Linux a Microsoft Windows, stejně jako univerzální zdrojový archiv, který lze kompilovat a instalovat na libovolném operačním systému, kde je podporován Python.
Co je nového v této verzi:
- Konzola:
- Byla implementována metoda console.timeLog (). # 21312
- deps:
- Upgradujte na libuv 1.22.0. # 21731
- Upgrade na ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- http:
- Přidána podpora pro předání možností časového limitu a agenta do http.request. # 21204
- inspektor:
- Zobrazte konzolu API původní konzoly v konzole vyžadovat (inspektor). # 21659
- napi:
- Přidána experimentální podpora funkcí pro velké čísla. # 21226
- proces:
- Byla implementována metoda process.hrtime.bigint (). # 21256
- Přidán argument příkazového řádku - title pro nastavení názvu procesu při spuštění. # 21477
- trace_events:
- Přidány metadata process_name. # 21477
- Přidali jste nové spolupracovníky
- codebytere - Shelley Vohr
Co je nového ve verzi 10.0.0:
Co je nového ve verzi:
- async_hooks:
- přidat události trasování do async_hooks (Andreas Madsen) # 15538
- přidat typy poskytovatelů pro síťový server (Andreas Madsen) # 17157
- konzola:
- Konsole.debug lze nyní použít mimo inspektora (Benjamin Zaslavsky) # 17033
- deps:
- Upgradovat libuv na 1.18.0 (cjihrig) # 17282
- záplatu V8 až 6.2.414.46 (Myles Borins) # 17206
- modul:
- module.builtinModules vrátí seznam vestavěných modulů (Jon Moss) # 16386
- n-api:
- přidat pomocníka pro addony pro získání smyčky událostí (Anna Henningsen) # 17109
- proces:
- process.setUncaughtExceptionCaptureCallback lze nyní použít k přizpůsobení chování pro - abort-on-uncaught-exception (Anna Henningsen) # 17159
- Správa signálů nyní může přijímat kód signálu, který spustil obsluhu. (Robert Rossmann) # 15606
- src:
- Embedders nyní mohou použít Node :: CreatePlatform k vytvoření instance NodePlatform (Cheng Zhao) # 16981
- proud:
- writable.writableHighWaterMark a readable.readableHighWaterMark vrátí hodnoty, na které byl objekt streamu inicializován (Calvin Metcalf) # 12860
- Přidali jste nové spolupracovníky
- maclover7 Jon Moss
- guybedford Guy Bedford
- hashseed Yang Guo
Co je nového ve verzi 9.2.0:
Co je nového ve verzi 8.5.0:
- Vytvořit:
- Snímky jsou nyní znovu povoleny ve verzi V8 # 14875
- konzola:
- Implementujte minimální konsoli.group (). # 14910
- deps:
- Upgrade liblu na 1.14.1 # 14866
- Aktualizace nghttp2 na v1.25.0 # 14955
- dns:
- Přidat verbatim do dns.lookup (). V případě, že výsledky DNS resolveru jsou pravdivé, jsou předány tak, jak je, aniž by došlo k přerozdělování, které Node.js jinak dělá adresy IPv4 před adresami IPv6. # 14731
- fs:
- přidat fs.copyFile a fs.copyFileSync, což umožňuje efektivnější kopírování souborů. # 15034
- inspektor:
- Povolit stopy zásobníku asynchronní # 13870
- modul:
- Přidejte podporu pro ESM. Toto je nyní za příznakem --experimental-modules a vyžaduje příponu .mjs. uzel - experimentální moduly index.mjs # 14369
- napi:
- implementujte slib # 14365
- os:
- Přidejte podporu pro zápis CIDR do výstupu metody networkInterfaces (). # 14307
- perf_hooks:
- Počáteční implementace API časování výkonu pro Node.js. Jedná se o stejné rozhraní API pro časování výkonu implementované moderními prohlížeči s řadou vlastností specifických pro Node.js. Rozhraní API pro časování uživatele () a měření () jsou implementovány. # 14680
- tls:
- více PFX v createSecureContext # 14793
- Přidali jste nové spolupracovníky:
- BridgeAR - Ruben Bridgewater
Co je nového ve verzi 8.3.0:
- Motor V8 byl upgradován na verzi 6.0, která má výrazně změněný profil výkonu.
- Další významné změny:
- DNS:
- Nyní jsou podporovány instance nezávislého resolveru DNS s podporou zrušení příslušných požadavků.
- N-API:
- Několik funkcí N-API pro zpracování chyb bylo změněno na podporu přiřazení chybových kódů.
- REPL:
- Byla vylepšena podpora automatického doplňování pro požadavek ().
- Nástroje:
- Standard kódování WHATWG (TextDecoder a TextEncoder) byl implementován jako experimentální funkce.
Co je nového ve verzi 8.1.3:
- Stream Dvě regrese s proudovým modulem byly opraveny:
- Událost ukončení bude nyní vždy vysílána po výskytu chyby, pokud se vyskytne: [0a9e96e86c] # 13850
- V režimu objektu mohou čtecí streamy nyní znovu použít nedefinované. [5840138e70] # 13760
Co je nového ve verzi 8.1.2:
- Opravte poškozené procesy.vydání v 8.1.1, což způsobuje selhání kompilace nativních doplňků na jiných platformách než Windows. Toto je oprava v procesu sestavení Node.js, takže nejsou zahrnuty žádné další kódy kódů na začátku 8.1.1.
Co je nového ve verzi 7.7.1:
- [c8e34b61f6] - sestavit: přidat chybějící soubory src / tracing header (Daniel Bevenius) # 10851
- [96f55f9e59] - src: přesunout trace_event.h do interní záhlaví (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: oprava vyčištění TracingController (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: vždy inicializujte trasovací řadič v agenta (Matt Loring) # 10507
- [54e55e05ca] - test: zkuste test-intl-no-icu-data robustnější (Michael Zasso) # 10992
- [7b253eb3ed] - test: zvýšit přísnost pro testovací stopu (Rich Trott) # 11065
- [3dc4a5f1f4] - trasování: fix -Wunused-private-field warning (Santiago Gimeno) # 10416
- [8a918bf411] - trasování: oprava - upozornění na chybu (Santiago Gimeno) # 10416
Co je nového ve verzi 7.4.0:
- vyrovnávací paměť:
- Zvyšte výkon alokace vyrovnávací paměti o ~ 11%. (Brian White) # 10443
- Zvyšte výkon souboru Buffer.from () o ~ 50%. (Brian White) # 10443
- události: Zvyšte výkon události EventEmitter.once () o ~ 27%. (Brian White) # 10445
- fs: Umožňuje přechod Uint8Array do fs metod, kde jsou podporovány vyrovnávací paměti. (Anna Henningsen) # 10382
- http: Zvyšte výkon serveru http o ~ 7%. (Brian White) # 6533
- npm: Upgrade na v4.0.5 (Kat Marchan) # 10330
Co je nového ve verzi 7.2.1:
- vyrovnávací paměť:
- Vrátil odložení doby volání vyrovnávací paměti volání vyrovnávací paměti () bez nové. (Anna Henningsen) # 9529
- Opravený buffer.transcode () pro kódování jednobajtových znaků do UCS2. (Anna Henningsen) # 9838
- slib: - výstražné upozornění nyní vytvářejí užitečné stacktrace pro varování o slibu. (Anna Henningsen) # 9525
- repl: Opravena chyba zabraňující správné analýze funkcí generátoru. (Teddy Katz) # 9852
- V8: Opravena významná instance regrese výkonu. (Franziska Hinkelmannová) # 9730
Co je nového ve verzi 7.2.0:
- crypto: Metody dešifrování setAuthTag () a setAAD nyní vrátí toto.
- dns: Implementoval {ttl: true} pro řešení4 () a vyřešit6 ().
- libuv: Upgrade na v1.10.1
- Při zápisu dat do konzoly v systému Windows 10. (CVE-2016-9551) byl opraven potenciální přetečení vyrovnávací paměti
- proces: Přidána nová externí vlastnost k datům vráceným memoryUsage ().
- tls: Opraveno úniku paměti při zápisu do front ve spojení TLS, které bylo zničeno během handshake.
- V8 (dep): Upgrade na v5.4.500.43
- v8: Data vrácená modulem getHeapStatistics () nyní obsahují tři nová pole: malloced_memory, peak_malloced_memory a does_zap_garbage.
Co je nového ve verzi 6.4.0:
- Vytvořit: symboly zlib a další symboly OpenSSL jsou nyní zobrazeny na platformách Windows. (Alex Hultman) # 7983 a # 7576
- child_process, cluster: Forked child processes a cluster pracovníci nyní podporují stdio konfiguraci. (Colin Ihrig) # 7811 a # 7838
- child_process: argv [0] může být nyní nastaven na libovolné hodnoty ve výsledných procesech. (Pat Pannuto) # 7696
- fs: fs.ReadStream nyní odhaluje počet bajtů, které dosud četl. (Linus Unneback) # 7942
- repl: REPL nyní podporuje režim editoru. (Prince J Wesley) # 7275
- util: inspect () lze nyní konfigurovat globálně pomocí util.inspect.defaultOptions. (Roman Reiss) # 8013
Co je nového ve verzi 6.3.0:
- vyrovnávací paměť: Přidána vyrovnávací paměť.swap64 () doplněná swap16 () & amp; swap32 (). (Zach Bjornson) # 7157
- build: Byly přidány nové možnosti konfigurace pro vytváření Node.js jako sdílené knihovny. (Stefan Budeanu) # 6994
- Možnosti jsou: - sdíleny, --without-v8-platform & amp; --without-bundled-v8.
- crypto: Aktualizované kořenové certifikáty. (Ben Noordhuis) # 7363
- debugger: adresa serveru je nyní konfigurovatelná pomocí příkazu --debug = :. (Ben Noordhuis) # 3316
- npm: Upgradované npm na v3.10.3 (Kat Marchan) # 7515 & (Rebecca Turnerová) # 7410
- readline: Přidána výzva k konstruktoru readline. (Evan Lucas) # 7125
- repl / vm: sigint / ctrl + c se nyní vymaže z nekonečných smyček bez zastavení instance Node.js. (Anna Henningsenová) # 6635
- src:
- Přidán uzel :: FreeEnvironment veřejné C ++ API. (Cheng Zhao) # 3098
- Refactored require (konstanty), konstanty jsou nyní k dispozici přímo z jejich příslušných modulů. (James M Snell) # 6534
- stream: Vylepšil výkon čtení.read () až o 70%. (Brian White) # 7077
- časovače: setImmediate () je v některých situacích nyní o 150% rychlejší. (Andras) # 6436
- util: Přidána možnost breakLength na util.inspect () pro ovládání formátování objektů přes řádky. (cjihrig) # 7499
- Inspektor v8: byla přidána experimentální podpora pro ladění Node.js přes protokol inspektora. (Ali Ijaz Sheikh) # 6792
- Poznámka: Tato funkce je experimentální a může být změněna nebo odstraněna.
- Tuto funkci můžete vyzkoušet pomocí příkazu Node.js s příznakem --inspect.
Co je nového ve verzi 6.0.0:
- Buffer:
- Nové konstruktory vyrovnávacích pamětí byly přidány # 4682 a # 5833.
- Konstruktory existujících vyrovnávacích pamětí () a SlowBuffer () byly v dokumentech # 4682 a # 5833 zastaralé.
- Dříve zrušené API vyrovnávacích pamětí byly odstraněny # 5048, # 4594.
- Zlepšená manipulace s chybami # 4514.
- Byla přidána metoda Buffer.prototype.lastIndexOf () # 4846.
- Klastr:
- Pracovník byl vydán jako první argument v události "zpráva" # 5361.
- Vlastnost worker.exitedAfterDisconnect nahrazuje pracovníka # 3743.
- Konzola:
- Volání console.timeEnd () s neznámým štítkem nyní vydává varování procesu spíše než házení # 5901.
- Crypto:
- Zlepšená manipulace s chybami # 3100, # 5611.
- Zjednodušená vazba třídy certifikátů # 5382.
- Lepší řízení režimu FIPS # 5181.
- Přetížení pbkdf2 digest je zastaralé # 4047.
- Závislosti:
- Znovu zadejte sdílenou podporu c-ares build # 5775.
- V8 byl aktualizován na 5.0.71.35 # 6372.
- DNS:
- Přidejte dns.resolvePtr () API pro dotaz na obyčejné záznamy DNS PTR # 4921.
- Domény:
- Vymažte zásobník, pokud není obslužný program chyby # 4659.
- Události:
- Objekt EventEmitter.prototype._events již dědí z objektu Object.prototype # 6092.
- Byly přidány metody EventEmitter.prototype.prependListener () a EventEmitter.prototype.prependOnceListener () # 6032.
- Souborový systém:
- Metody fs.realpath () a fs.realpathSync () byly aktualizovány tak, aby používaly efektivnější implementaci založenou na libu. Tato změna zahrnuje odebrání argumentu mezipaměti a metoda může házet nové chyby # 3594.
- FS apis může nyní přijímat a vracet cesty jako vyrovnávací paměť # 5616.
- Chyba při manipulaci s typem a kontrole vylepšení # 5616, # 5590, # 4518, # 3917.
- fs.read je zastaralý # 4525.
- HTTP:
- 'clientError' lze nyní použít k vrácení vlastních chyb z HTTP serveru # 4557.
- Moduly:
- Současný adresář je nyní prioritní pro místní vyhledávání # 5689.
- Symbolické odkazy jsou zachovány při požadavku na moduly # 5950.
- Net:
- Názvy DNS již nejsou implicitně nastaveny # 6021.
- Zlepšená manipulace s chybami a kontrola typu # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET byl narušen na 10,7 # 6402.
- Cesta:
- Zlepšená kontrola typu # 5348.
- Proces:
- Zavést varování procesu API # 4782.
- Odstranit výjimku, když nepodloží funkci nextTick # 3860.
- Dotazovací řetězec:
- Objekt vrácený příkazem querystring.parse () již zdědí z objektu Object.prototype # 6055.
- Čtení:
- Klíčové informace jsou bezvýhradně vydávány # 6024.
- Historie může být nyní explicitně zakázána # 6352.
- REPL:
- Přiřazení na _ bude vydávat varování # 5535.
- Výrazy již nebudou dokončeny, pokud selže eval # 6328.
- Časovače:
- Při selhání zpětného volání není funkce # 4362
- Toky:
- null je nyní neplatný blok pro zápis do objektového režimu # 6170.
- TLS:
- Přejmenujte 'clientError' na 'tlsClientError' # 4557.
- SHA1 se používá pro sessionIdContext # 3866.
- TTY:
- Dřívější zastaralý obal setRawMode byl odstraněn # 2528.
- URL:
- Uživatelské jméno a heslo budou zrušeny url.resolve (), pokud host změní # 1480.
- Util:
- Změní formátování objektu Error # 4582.
- Metoda util._extend () byla zastaralá # 4903
- Metoda util.log () byla zastaralá # 6161.
- Windows:
- Windows XP a Vista již nejsou podporovány # 5167.
- Zlib:
- Byla provedena více vylepšení zpracování Zlib # 5883 a # 5707.
Řetězec řetězce
Požadavky :
- Python
Komentáře nebyl nalezen