Node.js | |
---|---|
Typ | aplikační rámec [d] ,runtimeaopen source |
Vývojář | OpenJS Foundation [d] aDahl, Ryan |
Zapsáno v | Lua , C++ , Python , C |
Operační systém | Linux , Microsoft Windows [3] , BSD [3] a macOS [3] |
První vydání | 27. května 2009 [1] |
Nejnovější verze | |
Stát | aktivní |
Licence | licence MIT [4] |
webová stránka | nodejs.org _ |
Mediální soubory na Wikimedia Commons |
Node nebo Node.js je softwarová platforma založená na enginu V8 (který kompiluje JavaScript do nativního kódu ), který transformuje JavaScript z vysoce specializovaného jazyka do jazyka pro všeobecné použití. Node.js přidává schopnost JavaScriptu interagovat s I/O zařízeními prostřednictvím svého API napsaného v C ++ , propojovat další externí knihovny napsané v různých jazycích a poskytovat jim volání z kódu JavaScript. Node.js se používá primárně na serveru, funguje jako webový server , ale je možné vyvíjet desktopové okenní aplikace v Node.js (pomocí NW.js , AppJS nebo Electron pro Linux , Windows a macOS ) a dokonce programovat mikrokontroléry ( například tessel, low.js a espruino). Node.js je založen na událostmi řízeném a asynchronním (nebo reaktivním) programování s neblokujícím I/O .
V roce 1996 se Netscape pokusil vytvořit JavaScript na straně serveru (Server-side JavaScript - SSJS) [5] [6] , ale technologie se neuchytila.
Node.js byl vyvinut Ryanem Dahlem v roce 2009 po dvou letech experimentování s budováním webových komponent na straně serveru. V průběhu svého výzkumu dospěl k závěru, že namísto tradičního modelu souběžnosti založeného na vláknech je třeba se obrátit na systémy řízené událostmi. Tento model byl vybrán kvůli jeho jednoduchosti, nízké režii (ve srovnání s ideologií „jedno vlákno na připojení“) a rychlosti. Cílem Node je nabídnout „snadný způsob, jak budovat škálovatelné síťové servery“.
Vývoj Node.js je sponzorován společností Joyent .
V prosinci 2014 byl vytvořen fork io.js .
V květnu 2015 padlo rozhodnutí o sloučení io.js a Node.js a dalším vývoji pod záštitou Node.js Foundation [7] .
8. září 2015 byl vydán Node.js v4.0.0 jako sloučení Node.js v0.12.7 a io.js v3.3.0 [8] [9] .
Důležitými událostmi ve vývoji platformy bylo objevení se Atomics a SharedArrayBuffer v Node.js 9, stejně jako worker_threads v Node.js 10.5 (a významný vývoj v Node.js 12) [10] . To umožnilo vytvářet vícevláknové paralelní aplikace, implementovat paralelní programovací primitiva a pracovat se sdílenou pamětí [11] .
Verze | Postavení | krycí jméno | Datum vydání | Podpora až |
---|---|---|---|---|
0.10.x | konec života | 2013-03-11 | 2016-10-31 | |
0,12.x | konec života | 2015-02-06 | 2016-12-31 | |
4.x | konec života | Argon [12] | 2015-09-08 | 2018-04-30 |
5.x | konec života | 2015-10-29 | 2016-06-30 | |
6.x | konec života | bór [12] | 2016-04-26 | 2019-04-30 |
7.x | konec života | 2016-10-25 | 2017-06-30 | |
8.x | konec života | uhlík [12] | 2017-05-30 | 2019-12-31 |
9.x | konec života | 2017-10-01 | 2018-06-30 | |
10.x | konec života | Dubnium [12] | 2018-04-24 | 2021-04-30 |
11.x | konec života | 2018-10-23 | 2019-06-01 | |
12.x | konec života | Erbium [12] | 2019-04-23 | 2022-04-30 |
13.x | konec života | 2019-10-22 | 2020-06-01 | |
14.x | Údržba LTS | Fermium [12] | 2020-04-21 | 2023-04-30 |
15.x | konec života | 2020-10-20 | 2021-06-01 | |
16.x | Aktivní LTS | galium [12] | 2021-04-20 | 2024-04-30 |
17.x | konec života | 2021-10-19 | 2022-06-01 | |
18.x | Proud | 2022-04-19 | 2025-04-30 | |
19.x | Plánováno | 2022-10-18 | 2023-06-01 | |
20.x | Plánováno | 2023-04-18 | 2026-04-30 | |
Legenda:Stará verze, není podporovánaStará podporovaná verzeSoučasná verzeTestovací verzebudoucí verze |
Vytvoření a spuštění serveru Node.js HTTP , který vydává Hello, world! :
// Připojení http modulu const http = require ( "http" ); // Vytvořte webový server s obsluhou požadavků const server = http . createServer (( incomingMessage , response ) => { console . log ( "Start processing request" ); // Předání kódu odpovědi a odpovědi HTTP hlavičky . writeHead ( 200 , { " Content-Type" : "text/plain; charset=UTF -8" }); odpověď .end ( "Ahoj světe!" ); } ); // Spusťte server webového serveru . listen ( 80 , "127.0.0.1" , () => { const info = server . adresa (); console . log ( `Server spuštěn ${ info } ` ); });Další příklad skriptu, který vytvoří server TCP , který naslouchá na portu 8080 a vytiskne vše, co uživatel zadá na obrazovku:
// Připojení síťového modulu const net = require ( "net" ); // Vytvoří TCP server const server = net . createServer (( stream ) => { // Nastavení streamu kódování . setEncoding ( "utf-8" ); // Deklarování streamu obsluhy události . on ( "data" , ( data ) => { // Výstup dat do konzole konzole .log ( data ); } ); }); // Spusťte server server . poslouchat ( 8080 , "127.0.0.1" );Node.js přichází s vlastním správcem balíčků npm , který poskytuje možnost instalovat, publikovat a vyhledávat balíčky z úložiště npmjs.com.
Instalace se provádí pomocí příkazu:
npm install <název balíčku>Všechny balíčky dostupné pro instalaci a jejich stručný popis:
vyhledávání npmStejný příkaz lze použít k selektivnímu vyhledávání balíčků.
Seznam knihoven, které implementují koncept programování orientovaného na události:
JavaScript | |
---|---|
Nápady | |
Kompilátory | |
Motory | |
Knihovny a rámce | |
redaktoři | |
Nástroje |
|
Související technologie | |
Lidé | |
Kategorie |
Node.js | ||
---|---|---|
Plošina | ||
Rámce | ||
Jazyky | ||
hostitelé |
|