Node.js е софтуер с отворен код и напълно свободен софтуер, който дава възможност на уеб програмистите да изграждат мащабируеми и бързи мрежови програми. Основавайки се на времето за изпълнение на JavaScript в Chrome, софтуерът Node.js е изключително ефективен и лек, особено защото използва не-блокиращ I / O модел, задвижван от събития.
Най-добрата платформа за изпълнение на JavaScript кода на сървъра
Node.js понастоящем се счита за най-добрата платформа за стартиране на JavaScript код от сървъра и се използва в производството в големи компании като Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 и много други.
Задължителен пример
Следният код ще създаде прост уеб сървър, който отговаря на "Hello World" за всяка заявка.
var http = изисква ("http");
http.createServer (функция (req, res) {
res.writeHead (200, {'Content-Type': 'text / plain'));
res.end ("Hello Worldn");
}), чуйте (1337, '127.0.0.1');
console.log ("Сървърът е на http://127.0.0.1:1337/");
За да стартирате HTTP сървъра, ще трябва да въведете кода по-горе във файл, наречен & ldquo; example.js & rdquo; (без кавички) и го изпълнявайте с командата възел от терминален емулатор:
% node example.js
Сървърът е на http://127.0.0.1:1337/
Поддържани операционни системи
Node.js е мултиплатформено приложение, което успешно е тествано под многобройни GNU / Linux дистрибуции, включително Debian, Ubuntu, Arch Linux, Fedora, Red Hat Enterprise Linux, openSUSE, Mageia, Slackware и др. както и на търговските операционни системи Mac OS X и Microsoft Windows. Понастоящем се поддържат както 64-битови, така и 32-битови архитектури на набор инструкции.
Под капака, изисквания и наличност
Както споменахме, това е мултиплатформен софтуер. Тя може да бъде изтеглена като предварително инсталирани инсталатори за операционните системи Mac OS X, GNU / Linux и Microsoft Windows, както и универсален архив, който може да бъде компилиран и инсталиран на почти всяка операционна система, където Python се поддържа.
Какво ново в това издание:
- конзола:
- Беше внедрен методът console.timeLog (). # 21312
- deps:
- Надстройте до libuv 1.22.0. # 21 731
- Надстройване до ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- HTTP:
- Добавена е поддръжка за преминаване на опциите за изчакване и за агента към http.request. # 21204
- инспектор:
- Изложете API на оригиналната конзола в конзолата изисква ("инспектор"). # 21659
- NaPi:
- Добавена е експериментална поддръжка за функции, занимаващи се с големите номера. # 21226
- процес:
- Методът process.hrtime.bigint () е внедрен. # 21256
- Добавен аргумент на заглавието на командата за заглавие за задаване на заглавието на процеса при стартиране. # 21477
- trace_events:
- Добавени метаданни process_name. # 21477
- Добавени са нови сътрудници
- codebytere - Shelley Vohr
Какво ново във версия 10.0.0:
- Пълна поддръжка на N-API
- Лесно е да започнете с Debugging по време на пътуване чрез ново разширение на код за Visual Studio
- Поддръжка на TTD за генератори и асинхронни функции
- Поддръжка за протокола на инспектора
- Увеличена стабилност и други подобрения
Какво е новото във версията:
- async_hooks:
- добавете проследяващи събития към async_hooks (Andreas Madsen) # 15538
- добавете типове доставчици за нетен сървър (Andreas Madsen) # 17157
- конзола:
- console.debug вече може да се използва извън инспектора (Benjamin Zaslavsky) # 17033
- deps:
- надстройте libuv до 1.18.0 (cjihrig) # 17282
- кръпка V8 до 6.2.414.46 (Myles Borins) # 17206
- модул:
- module.builtinModules ще върне списък с вградени модули (Jon Moss) # 16386
- п-API
- добавете помощник за добавки, за да получите цикъла на събитието (Anna Henningsen) # 17109
- процес:
- process.setUncaughtExceptionCaptureCallback вече може да се използва за персонализиране на поведението за - abort-on-uncaught-exception (Anna Henningsen) # 17159
- Устройството за обработка на сигнал вече може да получи сигналния код, който е задействал обработващото устройство. (Робърт Росман) # 15606
- SRC:
- вградените вече могат да използват Node :: CreatePlatform, за да създадат инстанция на NodePlatform (Cheng Zhao) # 16981
- поток:
- writable.writableHighWaterMark и readable.readableHighWaterMark ще върне стойностите, които обектът на потока е бил инстанция с (Calvin Metcalf) # 12860
- Добавени са нови сътрудници
- maclover7 Джон Мос
- guybedford Guy Bedford
- Hashseed Янг Гуо
Какво е новото във версия 9.2.0:
Какво е новото във версия 8.5.0:
- строеж:
- Снимките вече са активирани повторно в V8 # 14875
- конзола:
- Внедрете минимална конзола.group (). # 14910
- deps:
- надстройте libuv на 1.14.1 # 14866
- актуализирайте nghttp2 to v1.25.0 # 14955
- DNS
- Добавете дословно опция към dns.lookup (). Когато е вярно, резултатите от DNS резолвъра се предават както е, без пренареждането, което Node.js прави по друг начин, което поставя IPv4 адресите преди IPv6 адресите. # 14 731
- FS:
- добавете fs.copyFile и fs.copyFileSync, което позволява по-ефективно копиране на файлове. # 15034
- инспектор:
- Активиране на следи от станции за синхронизация # 13870
- модул:
- Добавете поддръжка за ESM. Това в момента е зад флага на експерименталните модули и изисква разширението .mjs. възел - експериментални модули index.mjs # 14369
- NaPi:
- изпълнете обещание # 14365
- OS:
- Добавете поддръжка за нотация CIDR към изхода на метода networkInterfaces (). # 14307
- perf_hooks:
- Първоначално изпълнение на приложния програмен интерфейс (API) за времето за изпълнение на Node.js. Това е същият програмен интерфейс за ефективност, изпълняван от съвременни браузъри, с редица специфични свойства на Node.js. Прилагат се маркерите за маркиране на потребител () и измерване (). # 14680
- TLS:
- няколко PFX в createSecureContext # 14793
- Добавени са нови сътрудници:
- BridgeAR - Ruben Bridgewater
Какво е новото във версия 8.3.0:
- Моделът V8 бе надстроен до версия 6.0, която има значително променен профил за ефективност.
- Други забележими промени:
- DNS
- Независими копирни редове на DNS се поддържат сега, с поддръжка за анулиране на съответните заявки.
- N-API
- Няколко функции N-API за обработка на грешки са променени, за да поддържат кодовете за грешки.
- REPL:
- Подкрепата за автоматично допълване на изискването () е подобрена.
- Полезност:
- Стандартът за кодиране WHATWG (TextDecoder и TextEncoder) е приложен като експериментална функция.
Какво е новото във версия 8.1.3:
- поток Две регресии с поточния модул са били фиксирани:
- Събитието за завършване ще се излъчва винаги след грешка, ако е излъчено: [0a9e96e86c] # 13850
- В обектния режим потоците с възможност за четене вече могат да се използват неопределено. [5840138e70] # 13760
Какво е новото във версия 8.1.2:
- Коригирайте счупените процеси.изтеглете свойствата в 8.1.1, което води до невъзможност за компилиране на допълнителни добавки на платформи, различни от Windows. Това е поправка в процеса на създаване на Node.js, така че не са включени допълнителни кодови команди в началото на 8.1.1.
Какво е новото във версия 7.7.1:
- [c8e34b61f6] - изграждане: добавяне на липсващи сървъри / заглавие на файловете (Daniel Bevenius) # 10851
- [96f55f9e59] - src: преместете trace_event.h към вътрешния заглавие (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: поправете TracingController cleanup (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: винаги инициализира проследяващия контролер в агент (Matt Loring) # 10507
- [54e55e05ca] - тест: направете test-intl-no-icu-data по-здрави (Michael Zasso) # 10992
- [7b253eb3ed] - тест: увеличаване на строгостта за проследяване-събитие (Rich Trott) # 11065
- [3dc4a5f1f4] - проследяване: поправяне - предупреждение за лично поле (Santiago Gimeno) # 10416
- [8a918bf411] - проследяване: фиксиране - Предупреждение за предупреждение (Сантяго Гимено) # 10416
Какво е новото във версия 7.4.0:
- буфер:
- Подобрете ефективността на разпределението на буферите с ~ 11%. (Брайън Уайт) # 10443
- Подобрете ефективността на Buffer.from () с ~ 50%. (Брайън Уайт) # 10443
- събития: Подобрете ефективността на EventEmitter.once () с ~ 27%. (Брайън Уайт) # 10445
- fs: Позволява преминаване на Uint8Array към fs методи, където се поддържат буфери. (Анна Хенингсен) # 10382
- http: Подобрете производителността на http сървъра с ~ 7%. (Брайън Уайт) # 6533
- npm: Надстройте до v4.0.5 (Kat Marchan) # 10330
Какво е новото във версия 7.2.1:
- буфер:
- Връщане на отхвърлянето по време на изпълнение на буфера за повиквания () без нови. (Анна Хенинген) # 9529
- Фиксиран buffer.transcode () за еднобайтово кодиране на знаци към UCS2. (Анна Хенинген) # 9838
- обещание: - предупрежденията за проследяване сега създават полезни стакове за предупрежденията за обещания. (Анна Хенинген) # 9525
- repl: Фиксирана бъг, предотвратяваща правилния анализ на функциите на генератора. (Теди Кадз) # 9852
- V8: Фиксиран е значителен пример за регресия на ефективността. (Franziska Hinkelmann) # 9730
Какво е новото във версия 7.2.0:
- crypto: Методите на Decipher setAuthTag () и setAAD вече върнат това.
- DNS: Изпълни {ttl: true} за resolve4 () и разреши6 ().
- libuv: Надстройте до v1.10.1
- Фиксирано е препълване на потенциалния буфер при записване на данни за конзола на Windows 10. (CVE-2016-9551)
- процес: Добавена е нова външна собственост към данните, върнати от memoryUsage ().
- tls: Фиксирано изтичане на памет, когато пише, че е поставено на опашка по TLS връзка, която е била унищожена по време на ръкостискане.
- V8 (dep): Надстройте до v5.4.500.43
- v8: Данните, върнати от getHeapStatistics (), вече включват три нови полета: malloced_memory, peak_malloced_memory и does_zap_garbage.
Какво е новото във версия 6.4.0:
- изграждане: zlib символи и допълнителни OpenSSL символи сега са изложени на Windows платформи. (Алекс Хултман) # 7983 и # 7576
- child_process, клъстер: Процесорите с въртящи се деца и работещите в клъстера сега поддържат конфигурация на стодио. (Колин Ихриг) # 7811 и # 7838
- child_process: argv [0] вече може да бъде настроен на произволни стойности в процесите на заразяване. (Pat Pannuto) # 7696
- fs: fs.ReadStream показва броя на байтовете, които е прочел досега. (Linus Unneback) # 7942
- repl: REPL вече поддържа редакторски режим. (Принц Й Уесли) # 7275
- util: inspect () вече може да бъде конфигуриран глобално чрез util.inspect.defaultOptions. (Роман Рейс) # 8013
Какво е новото във версия 6.3.0:
- буфер: Добавен буфер.swap64 () за допълване на swap16 () & amp; swap32 (). (Зак Бьорнсон) # 7157
- build: Добавени са нови опции за конфигуриране за изграждане на Node.js като споделена библиотека. (Стефан Будану) # 6994
- Опциите са: - Shared, --without-v8-platform & amp; --without-пакет-V8.
- crypto: Основните сертификати са актуализирани. (Ben Noordhuis) # 7363
- Дебъгер: Адресът на сървъра вече може да се конфигурира чрез --debug = :. (Ben Noordhuis) # 3316
- npm: Надстроени npm до v3.10.3 (Kat Marchan) # 7515 & (Ребека Търнър) # 7410
- readline: Добавена е опцията за бърз достъп до constructor на readline. (Евън Лукас) # 7125
- repl / vm: sigint / ctrl + c ще изтече от безкрайните цикли, без да спира инстанцията Node.js. (Анна Хенингсен) # 6635
- SRC:
- Добавен е възел :: FreeEnvironment публичен C ++ API. (Ченг Джао) # 3098
- Refactored изискват ("константи"), константите вече са достъпни директно от техните съответни модули. (Джеймс М. Snell) # 6534
- поток: Подобрена производителност на readable.read () с до 70%. (Брайън Уайт) # 7077
- Таймери: setImmediate () сега е до 150% по-бърз в някои ситуации. (Andras) # 6436
- util: Добавена е опция breakLength към util.inspect (), за да се контролира как са форматирани обектите между линиите. (cjihrig) # 7499
- v8-инспектор: Експериментална поддръжка е добавена за отстраняване на грешки Node.js по инспекторен протокол. (Али Ижаз Шейх) # 6792
- Забележка: Тази функция е експериментална и може да бъде променена или премахната.
- Можете да опитате тази функция, като стартирате Node.js с флага - insins.
Какво е новото във версия 6.0.0:
- буфер:
- Добавени са нови конструктори за буфери # 4682 и # 5833.
- Конструкторите на съществуващите буфери () и SlowBuffer () са отхвърлени в docs # 4682 и # 5833.
- Предишните отменени буфери API са премахнати # 5048, # 4594.
- Подобрена обработка на грешки # 4514.
- Добавен бе методът Buffer.prototype.lastIndexOf () # 4846.
- Cluster:
- Работник, излъчван като първи аргумент в събитие "съобщение" # 5361.
- Работата.exitedAfterDisconnect собственост замества worker.suicide # 3743.
- конзолата:
- Показването на конзолата.timeEnd () с неизвестен етикет излъчва по-скоро предупреждение за процеса, отколкото хвърляне # 5901.
- Crypto:
- Подобрена обработка на грешки # 3100, # 5611.
- Опростени обвързвания за класове сертификати # 5382.
- Подобрен контрол върху режим FIPS # 5181.
- pbkdf2 претоварването на digest е отхвърлено # 4047.
- зависимости:
- Повторно въвеждане на споделена поддръжка на c-ares build # 5775.
- V8 се обновява на 5.0.71.35 # 6372.
- DNS
- Добавете API за dns.resolvePtr () за заявка на обикновени записи DNS PTR # 4921.
- домейни:
- Изчистете стека, когато няма ръководител за грешки # 4659.
- събитията:
- Обектът EventEmitter.prototype._events вече не наследява от Object.prototype # 6092.
- Добавени са методите EventEmitter.prototype.prependListener () и EventEmitter.prototype.prependOnceListener () # 6032.
- Файлова система:
- Методите fs.realpath () и fs.realpathSync () са актуализирани, за да използват по-ефективно изпълнение, базирано на libuv. Тази промяна включва премахването на кеш аргумента и методът може да хвърля нови грешки # 3594.
- FS apis вече може да приеме и да върне пътищата като Buffers # 5616.
- Грешка при манипулирането и проверката на подобренията # 5616, # 5590, # 4518, # 3917.
- fs.read е отхвърлен # 4525.
- HTTP:
- "clientError" вече може да се използва за връщане на персонализирани грешки от HTTP сървър # 4557.
- модули:
- Текущата директория вече е приоритизирана за местните търсения # 5689.
- Символичните връзки се запазват при изискване на модули # 5950.
- Net:
- DNS намеци вече не са имплицитно зададени # 6021.
- Подобрена обработка на грешки и проверка на типа # 5981, # 5733, # 2904.
- OS X:
- MACOSX_DEPLOYMENT_TARGET е достигнал до 10.7 # 6402.
- път:
- Подобрена проверка на типа # 5348.
- Метод:
- Въведете предупрежденията за процеса API # 4782.
- Изхвърляйте изключение, когато нефункционалната функция се предава на nextTick # 3860.
- Querystring:
- Обектът, върнат от querystring.parse (), вече не наследява от Object.prototype # 6055.
- Readline:
- Ключовата информация се излъчва безусловно # 6024.
- Историята вече може да бъде изрично деактивирана # 6352.
- REPL:
- Присвояването на _ ще излъчи предупреждение # 5535.
- Изразите вече няма да бъдат завършени, когато eval провали # 6328.
- таймери:
- По-рано, когато обратното повикване не е функция # 4362.
- потоци:
- null е невалидна част, която да се напише в режим на обект # 6170.
- TLS:
- Преименувайте 'clientError' на 'tlsClientError' # 4557.
- SHA1 се използва за sessionIdContext # 3866.
- TTY:
- По-рано отхвърленият комплект setRawMode е премахнат # 2528.
- URL:
- Потребителят и паролата ще бъдат премахнати от url.resolve (), ако хостът промени # 1480.
- Util:
- Промени в форматирането на обект за грешка # 4582.
- Методът util._extend () е отхвърлен # 4903
- Методът util.log () е отхвърлен # 6161.
- Windows
- Windows XP и Vista вече не се поддържат # 5167.
- Zlib:
- Бяха направени няколко подобрения в обработката на Zlib # 5883 и # 5707.
Интерфейсът на низовете
Изисквания :
- Python
Коментари не е намерена