Node.js - это открытый и полностью бесплатный ПО, позволяющий веб-разработчикам создавать масштабируемые и быстрые сетевые программы. Основываясь на времени выполнения JavaScript в JavaScript, программное обеспечение Node.js является чрезвычайно эффективным и легким, особенно потому, что использует неблокирующую, управляемую событиями модель ввода-вывода.
Верхняя платформа для запуска кода JavaScript на стороне сервера
Node.js в настоящее время считается верхней платформой для запуска кода JavaScript на стороне сервера, который используется в производстве в таких крупных компаниях, как Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 и многие другие.
Обязательный пример
Следующий код создаст простой веб-сервер, который будет отвечать «Hello World» для каждого запроса.
var http = require ('http');
http.createServer (функция (req, res) {
res.writeHead (200, {'Content-Type': 'text / plain'});
res.end ('Hello Worldn');
}). listen (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. # 21731
- Обновление до ICU 62.1 (Unicode 11, CLDR 33.1). # 21728
- HTTP:
- Добавлена поддержка передачи параметров таймаута и агента в http.request. # 21204
- инспектор:
- Откройте консольный API в консоли require ('inspector'). # 21659
- NAPI:
- Добавлена экспериментальная поддержка функций, связанных с числами bigint. # 21226
- процесс:
- Выполнен метод process.hrtime.bigint (). # 21256
- Добавлен аргумент командной строки --title для установки названия процесса при запуске. # 21477
- trace_events:
- Добавлены метаданные метаданных процесса. # 21477
- Добавлены новые сотрудники
- codebytere - Шелли Вор
Что нового в версии 10.0.0:
- Полная поддержка N-API
- Легкое начало работы с отладкой Time-Travel с помощью нового расширения кода Visual Studio
- Поддержка TTD для генераторов и асинхронных функций
- Поддержка протокола Inspector
- Повышенная стабильность и другие улучшенные улучшения.
Что нового в версии:
- async_hooks: литий>
- добавить события трассировки в async_hooks (Andreas Madsen) # 15538
- добавить типы провайдеров для сетевого сервера (Andreas Madsen) # 17157
- консоль:
- console.debug теперь можно использовать за пределами инспектора (Бенджамин Заславский) # 17033
- Deps:
- обновление libuv до 1.18.0 (cjihrig) # 17282
- патч V8 - 6.2.414.46 (Myles Borins) # 17206
- модуль:
- module.builtinModules вернет список встроенных модулей (Jon Moss) # 16386
- добавить хелпер для аддонов, чтобы получить цикл событий (Анна Хеннингсен) # 17109
- процесс:
- process.setUncaughtExceptionCaptureCallback теперь можно использовать для настройки поведения для -bort-on-uncaught-exception (Anna Henningsen) # 17159
- Обработчик сигналов теперь может получать код сигнала, запускающий обработчик. (Роберт Россманн) # 15606
- ЦСИ:
- Встраиваемые приложения теперь могут использовать Node :: CreatePlatform для создания экземпляра NodePlatform (Cheng Zhao) # 16981
- Поток:
- writable.writableHighWaterMark и readable.readableHighWaterMark вернет значения, с которыми был создан объект потока (Calvin Metcalf) # 12860
- Добавлены новые сотрудники
- maclover7 Джон Мосс
- guybedford Guy Bedford
- hashseed Yang Guo
<Литий> п-API: литий>
Что нового в версии 9.2.0:
- crypto:
- Поддержка здания с 1.1.0 и 1.0.2 (David Benjamin) # 16130
- фс:
- fs.realpathSync.native и fs.realpath.native теперь выставлены (Ben Noordhuis) # 15776
- процесс:
- выставить process.ppid (cjihrig) # 16839
Что нового в версии 8.5.0:
- сборки:
- Снимки теперь снова включены в V8 # 14875
- консоль:
- Внедрить минимальный console.group (). # 14910
- Deps:
- обновление libuv до 1.14.1 # 14866
- обновить nghttp2 до v1.25.0 # 14955
- DNS:
- Добавить дословный вариант dns.lookup (). Когда true, результаты от DNS-преобразователя передаются как есть, без перестановки в Node.js, иначе это ставит IPv4-адреса перед адресами IPv6. # 14731
- фс:
- добавить fs.copyFile и fs.copyFileSync, что позволяет более эффективно копировать файлы. # 15034
- инспектор:
- Включить трассировку стека асинхронизации # 13870
- модуль:
- Добавить поддержку для ESM. В данный момент это за флаг -experimental-modules и требует расширения .mjs. node --experimental-modules index.mjs # 14369
- NAPI:
- реализовать обещание # 14365
- ОС:
- Добавить поддержку нотации CIDR для вывода метода networkInterfaces (). # 14307
- perf_hooks:
- Первоначальная реализация API синхронизации производительности для Node.js. Это тот же API производительности, реализованный современными браузерами с рядом специфических свойств Node.js. Внедряются API-интерфейсы пользовательской метки () и measure (). # 14680
- TLS
- несколько PFX в createSecureContext # 14793
- Добавлены новые сотрудники:
- BridgeAR - Рубен Бриджуотер
Что нового в версии 8.3.0:
- Двигатель V8 был обновлен до версии 6.0, который имеет значительно измененный профиль производительности.
- Другие заметные изменения:
- DNS:
- Теперь поддерживаются экземпляры независимого DNS-резольвера, поддерживающие отмену соответствующих запросов.
- Несколько функций N-API для обработки ошибок были изменены для поддержки назначения кодов ошибок.
- РЕПЛ:
- Улучшена поддержка автозаполнения для require ().
- Утилиты:
- Стандарт кодирования WHATWG (TextDecoder и TextEncoder) был реализован как экспериментальная функция.
<Литий> N-API: литий>
Что нового в версии 8.1.3:
- Поток Две регрессии с модулем потока были исправлены:
- Событие финиша теперь будет всегда выходить после события ошибки, если оно испускается: [0a9e96e86c] # 13850
- В режиме объекта читаемые потоки теперь могут использовать undefined снова. [5840138e70] # 13760
Что нового в версии 8.1.2:
- Исправить поврежденные свойства process.release в 8.1.1, в результате чего невозможно скомпилировать собственные надстройки на платформах, отличных от Windows. Это исправление в процессе сборки Node.js, поэтому в дополнение к 8.1.1 нет дополнительных кодовых коммитов.
Что нового в версии 7.7.1:
- [c8e34b61f6] - build: добавить отсутствующие файлы заголовков src / tracing (Daniel Bevenius) # 10851
- [96f55f9e59] - src: move trace_event.h включить во внутренний заголовок (Ben Noordhuis) # 10959
- [30c80cbe6f] - src: исправить очистку TracingController (Jason Ginchereau) # 10623
- [b89b2a7d36] - src: всегда инициализировать контролер трассировки в агенте (Matt Loring) # 10507
- [54e55e05ca] - тест: сделать тест-int-no-icu-data более надежным (Michael Zasso) # 10992
- [7b253eb3ed] - тест: увеличить строгость для события test-trace-события (Rich Trott) # 11065
- [3dc4a5f1f4] - трассировка: fix -Wunused-private-field warning (Santiago Gimeno) # 10416
- [8a918bf411] - отслеживание: исправить предупреждение о предупреждении (Santiago Gimeno) # 10416
Что нового в версии 7.4.0:
- буфер:
- Повысить производительность выделения буфера на ~ 11%. (Брайан Уайт) # 10443
- Повысить производительность Buffer.from () на ~ 50%. (Брайан Уайт) # 10443
- события: улучшить производительность EventEmitter.once () на ~ 27%. (Брайан Уайт) # 10445
- fs: Разрешить передачу Uint8Array в методы fs, где поддерживаются буферы. (Анна Хеннингсен) # 10382
- http: повысить производительность HTTP-сервера на ~ 7%. (Брайан Уайт) # 6533
- npm: обновить до версии 4.0 (Kat Marchan) # 10330
Что нового в версии 7.2.1:
- буфер:
- Отменяет отмену времени выполнения вызова Buffer () без new. (Анна Хеннингсен) # 9529
- Исправлен buffer.transcode () для однобайтовых кодировок символов для UCS2. (Анна Хеннингсен) # 9838
- обещание: --trace-warnings теперь создает полезные стеки для предупреждений Promise. (Анна Хеннингсен) # 9525
- repl: Исправлена ошибка, препятствующая правильному анализу функций генератора. (Тедди Кац) # 9852
- V8: Исправлена значительная регрессия производительности. (Franziska Hinkelmann) # 9730
Что нового в версии 7.2.0:
- crypto: теперь применяются методы расшифровки setAuthTag () и setAAD.
- dns: Реализовано {ttl: true} для resolve4 () и resolve6 ().
- libuv: переход на v1.10.1
- Исправлено переполнение потенциального буфера при записи данных на консоль в Windows 10. (CVE-2016-9551)
- process: добавлено новое внешнее свойство для данных, возвращаемых функцией памятиUsage ().
- tls: Исправлена утечка памяти, когда записи были поставлены в очередь на TLS-соединение, которое было уничтожено во время рукопожатия.
- V8 (dep): перейти к версии 5.4.400.43
- v8: данные, возвращаемые getHeapStatistics (), теперь включают в себя три новых поля: malloced_memory, peak_malloced_memory и do_zap_garbage.
Что нового в версии 6.4.0:
- build: символы zlib и дополнительные символы OpenSSL теперь отображаются на платформах Windows. (Алекс Халтман) # 7983 и # 7576
- child_process, cluster: дочерние процессы с вилкой и кластеры теперь поддерживают конфигурацию stdio. (Колин Ириг) # 7811 и # 7838
- child_process: argv [0] теперь может быть установлен на произвольные значения в порожденных процессах. (Пэт Паннуто) # 7696
- fs: fs.ReadStream теперь предоставляет количество прочитанных байтов. (Linus Unneback) # 7942
- repl: REPL теперь поддерживает режим редактора. (Принц Дж. Уэсли) # 7275
- util: inspect () теперь можно настроить глобально, используя утилиту util.inspect.defaultOptions. (Роман Рейсс) # 8013
Что нового в версии 6.3.0:
- buffer: Добавлен buffer.swap64 () для дополнения swap16 () & amp; swap32 (). (Зак Бьорнсон) # 7157
- build: Добавлены новые параметры настройки для создания Node.js в качестве общей библиотеки. (Stefan Budeanu) # 6994
- Параметры: --shared, --without-v8-platform & amp; --without-комплектного-v8.
- crypto: Обновлены корневые сертификаты. (Бен Noordhuis) # 7363
- отладчик: адрес сервера теперь настраивается через --debug = :. (Бен Noordhuis) # 3316
- npm: обновленная версия для npm до v3.10.3 (Kat Marchan) # 7515 & amp; (Ребекка Тернер) # 7410
- readline: добавлена опция приглашения для конструктора readline. (Эван Лукас) # 7125
- repl / vm: sigint / ctrl + c теперь выйдет из бесконечных циклов, не останавливая экземпляр Node.js. (Анна Хеннингсен) # 6635
- ЦСИ:
- Добавлен открытый :: FreeEnvironment открытый C ++ API. (Чэн Чжао) # 3098
- Refactored require ('константы'), константы теперь доступны непосредственно из соответствующих модулей. (Джеймс М Снелл) # 6534
- поток: улучшена производительность readable.read () до 70%. (Брайан Уайт) # 7077
- таймеры: setImmediate () в некоторых ситуациях на 150% быстрее. (Андрас) # 6436
- util: добавлена опция breakLength для использования.inspect () для управления тем, как объекты форматируются по линиям. (cjihrig) # 7499
- v8-inspector: экспериментальная поддержка была добавлена для отладки Node.js по протоколу инспектора. (Али Иджаз Шейх) # 6792
- Примечание. Эта функция экспериментальна и может быть изменена или удалена.
- Вы можете попробовать эту функцию, запустив Node.js с флагом --inspect.
Что нового в версии 6.0.0:
- Буфер:
- Добавлены новые конструкторы буфера # 4682 и # 5833.
- Существующие конструкторы Buffer () и SlowBuffer () устарели в документах # 4682 и # 5833.
- Ранее устаревшие API-интерфейсы буфера удалены # 5048, # 4594.
- Улучшена обработка ошибок # 4514.
- Добавлен метод Buffer.prototype.lastIndexOf () # 4846.
- Кластер:
- Работник испускается как первый аргумент в событии # message 53 сообщения.
- Свойство worker.exitedAfterDisconnect заменяет employee.suicide # 3743.
- Консоль:
- Вызов console.timeEnd () с неизвестной меткой теперь испускает предупреждение процесса, а не бросает # 5901.
- Crypto:
- Улучшена обработка ошибок # 3100, # 5611.
- Упрощенные привязки классов сертификатов # 5382.
- Улучшен контроль над режимом FIPS # 5181.
- Перегрузка переполнения pbkdf2 устарела # 4047.
- Зависимости:
- Восстановить общую поддержку сборки c-ares # 5775.
- V8 обновлен до версии 5.0.71.35 # 6372.
- DNS:
- Добавить dns.resolvePtr () API для запроса простых записей 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 теперь может принимать и возвращать пути в виде буферов # 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.
- Path:
- Улучшена проверка типов # 5348.
- Ввести предупреждения об ошибках API # 4782.
- Выбросить исключение, если функция не передана nextTick # 3860.
- QueryString:
- Объект, возвращаемый querystring.parse (), больше не наследуется от Object.prototype # 6055.
- Readline:
- Информация о ключе выдается безоговорочно # 6024.
- Теперь история может быть явно отключена # 6352.
- РЕПЛ:
- Назначение _ будет выдавать предупреждение # 5535.
- Выражения больше не будут завершены, если eval завершится неудачей # 6328.
- Таймеры:
- Сбой раньше, когда обратный вызов не является функцией # 4362.
- Streams:
- 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 XP и Vista больше не поддерживаются # 5167.
- Zlib:
- В Zlib-обработку # 5883 и # 5707 были внесены многочисленные улучшения.
<Литий> Процесс: литий>
Требования
- Python
Комментарии не найдены