что значит send nodes
send+nudes
1 send
ниспосылать (дождь) ;
насылать (чуму)
посылать, отправлять, отсылать
(sent) посылать, отправлять;
отсылать;
to send a letter airmail послать письмо авиапочтой
приводить в определенное состояние
приводить в (какое-л.) состояние send бросать, посылать (мяч и т. п.) ;
to send a bullet through прострелить
(sent) посылать, отправлять;
отсылать;
to send a letter airmail послать письмо авиапочтой
away посылать;
to send away (for smth.) посылать (за чем-л.)
away посылать;
to send away (for smth.) посылать (за чем-л.)
by registered mail отправлять заказным письмом
down исключать или временно отчислять из университета
down понижать (напр., цены) ;
send for посылать за, вызывать;
to send for a doctor послать за врачом;
send forth испускать, издавать
down понижать (напр., цены) ;
send for посылать за, вызывать;
to send for a doctor послать за врачом;
send forth испускать, издавать
down понижать (напр., цены) ;
send for посылать за, вызывать;
to send for a doctor послать за врачом;
send forth испускать, издавать
in подавать (заявление) ;
представлять (экспонат на выставку) ;
to send in one’s name записываться (на конкурс и т. п.)
off отсылать (письмо, посылку и т. п.)
on approval отправлять после получения разрешения
flying отшвырнуть (см. тж.) ;
to send (smb.) sprawling сбить (кого-л.) с ног to
(smb.) to Coventry прекратить общение (с кем-л.) ;
бойкотировать (кого-л.) the punch sent the fighter reeling боксер зашатался от удара;
to send to sleep усыпить sleep: to send (smb.) to
(smb.) packing (или flying), to
(smb.) to the rightabout прогнать, выпроводить (кого-л.)
up амер. sl. приговорить к тюремному заключению;
to send word сообщать, извещать
up амер. sl. приговорить к тюремному заключению;
to send word сообщать, извещать she sent the children into the garden она отправила детей в сад погулять
out выпускать, испускать;
излучать;
the trees send out leaves деревья покрываются листвой
2 send across
3 send ahead
4 send along
5 send away
6 send down
7 send for
8 send forth
9 send forward
10 send in
11 send off
12 send on
13 send out
14 send over
15 send round
16 send up
17 send
to send a letter airmail посла́ть письмо́ авиапо́чтой
she sent the children into the garden она́ отпра́вила дете́й в сад погуля́ть
to send smb. sprawling сбить кого́-л. с ног
to send away for smth. посыла́ть за чем-л.
the trees send out leaves дере́вья покрыва́ются листво́й
to send smb. to Coventry прекрати́ть обще́ние с кем-л.; бойкоти́ровать кого́-л.
to send smb. packing прогна́ть, вы́проводить кого́-л.
18 send across
19 send after
20 send ahead
См. также в других словарях:
painting, Western — ▪ art Introduction history of Western painting from its beginnings in prehistoric times to the present. Painting, the execution of forms and shapes on a surface by means of pigment (but see also drawing for discussion of depictions in … Universalium
Art, Antiques, and Collections — ▪ 2003 Introduction In 2002 major exhibitions such as Documenta 11 reflected the diverse nature of contemporary art: artists from a variety of cultures received widespread recognition for work ranging from installation to video to painting … Universalium
ART — This article is arranged according to the following outline: Antiquity to 1800 INTRODUCTION: JEWISH ATTITUDE TO ART biblical period the sanctuary and first temple period second temple period after the fall of jerusalem relation to early christian … Encyclopedia of Judaism
Backdoor.Win32.IRCBot — is a computer worm/backdoor that is spread through MSN Messenger and Windows Live Messenger by downloading photo album.zip from someone. It can be recognised because the person says one of the following:*Lmfao hey im sending my new photo album,… … Wikipedia
Paul Reubens — Infobox actor caption = Reubens as Pee wee Herman at the 1988 Academy Awards birthname = Paul Rubenfeld birthdate = birth date and age|1952|08|27 birthplace = city state|Peekskill|New York, U.S. othername = Pee wee Herman website =… … Wikipedia
History of erotic photography — 19th century nude photographs featured the ideal body of the time, frequently with trimmed pubic hair … Wikipedia
Patricia Ford — female adult bio photo= birth= birth date and age|1969|3|17 location=Honolulu, Hawaii, United States height=height|ft=5|in=6 weight= convert|105|lb|kg st|abbr=on|lk=on measurements= 36 24 35 shoe size: 7.5 eye color=Brown hair color=Brunette… … Wikipedia
Penn Radio — Penn Jillette Hosting Penn Jillette Michael Goudeau Updates Daily Debut January 3, 2006 End date March 2, 2007 … Wikipedia
History of erotic depictions — The history of erotic depictions includes paintings, sculpture, photographs, dramatic arts, music and writings that show scenes of a sexual nature throughout time. They have been created by nearly every civilisation, ancient and modern. Early… … Wikipedia
Вы не знаете Node: краткий обзор основных возможностей
Ремарка от автора
Это статья новая, но она не о новых возможностях. Она о core, то есть о платформе и о том что многие кто просто используют grunt, или webpack могут не подозревать, так скзать about fundamentals.
Более подробно читайте:
Зачем вообще переживать насчёт Node? Node — это JavaScript, а JavaScript используется почти везде! Мир был бы лучше, если бы большинство разработчиков в совершенстве владели Node. Чем лучше приложения, тем лучше жизнь!
Эта статья представляет собой реалистичный взгляд на наиболее интересные основные возможности Node. Ключевые моменты статьи:
Цикл событий
Начнём с цикла событий, лежащего в основе Node.
Неблокирующие операции ввода/вывода в Node.js
Цикл позволяет нам работать с другими задачами параллельно с выполнение операций ввода/вывода. Сравните Nginx и Apache. Именно благодаря циклу событий Node работает очень быстро и эффективно, поскольку блокирующие операции ввода/вывода недёшевы!
Взгляните на этот простой пример отложенной функции println в Java:
Это сравнимо (хотя и не совсем) с кодом Node:
Результатом его работы будет очерёдность 1, 2, 4, 3, 5. Причина в том, что setTimeout помещает свой callback в будущие периоды цикла событий.
Блокирующие операции ввода/вывода: многопоточная Java
Цикл событий позволяет системе работать более эффективно, приложение может сделать что-то еще пока ждет завершение дорогих операций ввода/вывода.
Неблокирующие операции ввода/вывода в Node.js
Это контрастирует с более распространённой сегодня моделью параллельной обработки (concurrency model), при которой задействуются thread’ы операционной системы. Сетевая потоковая модель (thread-based networking) достаточно неэффективна и очень трудна в использовании. Более того, пользователи Node могут не опасаться полного блокирования процессов — здесь отсутствуют lock’и.
К слову, в Node.js всё же можно написать блокирующий код. Присмотритесь к этому простому фрагменту:
Конечно, обычно в нашем коде отсутствуют пустые циклы. При использовании чужих модулей может быть труднее выявлять синхронный, а значит блокирующий код. К примеру, основной модуль fs (файловая система) идёт с двумя наборами методов. Каждая пара делает одно и то же, но разными способами. Блокирующие методы в модуле fs имеют в названиях слово Sync :
Результат выполнения этого кода совершенно предсказуем даже для новичков в Node/JavaScript:
Но всё меняется, когда мы переходим на асинхронные методы. Вот пример неблокирующего кода:
contents выводятся на экран последними, потому что их выполнение занимает какое-то время, они же находятся в callback’ах. Цикл событий перейдёт к ним по окончании чтения файла:
В общем, цикл событий и неблокирующие операции ввода/вывода — вещи очень мощные, но вам придётся писать асинхронный код, к чему многие не привыкли.
Глобальный объект
Когда разработчики переходят с браузерного JavaScript или иного языка на Node.js, то у них возникают следующие вопросы:
Процесс
Объект процесса заслуживает отдельной главы, потому что содержит массу информации. Вот некоторые из его свойств:
Кто-то так сильно в них «влюблён», что создал http://callbackhell.com. Если этот термин вам не знаком, то вот иллюстрация:
«Ад callback’ов» труден для чтения, и здесь легко можно допустить ошибки. Так как же нам разделять на модули и организовывать асинхронный код, если не с помощью callback’ов, которые не слишком-то удобны для масштабирования с точки зрения разработки.
Эмиттеры событий
Чтобы справиться с адом callback’ов, или пирамидой погибели (pyramid of doom), применяются эмиттеры событий. С их помощью можно реализовать асинхронный код с использованием событий.
Если кратко, то эмиттер событий — это триггер для события, которое может прослушать кто угодно. В Node.js за каждым событием закреплено строковое имя, на которое эмиттером может быть повешен callback.
Для чего нужны эмиттеры:
Далее можно прикрепить получателей событий и активировать/передавать события:
Давайте с помощью EventEmitter сделаем что-нибудь полезное, унаследовав это от него. Допустим, вам регулярно нужно реализовывать какой-то класс — ежемесячно, еженедельно или каждый день. Этот класс должен быть достаточно гибким, чтобы другие разработчики могли кастомизировать финальный результат. Иными словами, по окончании вашей работы любой человек должен иметь возможность поместить в класс какую-то свою логику.
Эмиттеры событий в Node.js: шаблон “observer”
Класс Job сохранит свои свойства, но в то же время получит и события. По окончании процесса нам нужно лишь запустить событие done :
У эмиттеров есть и другие возможности:
Stream’ы
При работе с большими объёмами данных в Node возникает несколько проблем. Производительность может быть низкой, а размер буфера ограничен примерно 1 Гб. Кроме того, как работать в условиях бесконечного ресурса, который создавался из расчёта, что он никогда не закончится? В этих ситуациях нам помогут stream’ы.
Stream’ы в Node являются абстракцией, обозначающей непрерывное разбиение данных на фрагменты. Иными словами, вам не нужно ждать полной загрузки ресурса. На диаграмме показан стандартный подход к буферизации:
Подход к буферизации в Node.js
Прежде чем начать обработку данных и/или выводить их, нам приходится ждать полной загрузки буфера. А теперь сравните это со схемой работы stream’ов. В этом случае мы можем сразу начать обрабатывать данные и/или выводить их, как только получим первый чанк:
Поточный подход в Node.js
В Node есть четыре типа stream’ов:
Пример читаемого stream’а
Обратите внимание: stdin по умолчанию ставится на паузу, из которой его надо вывести прежде, чем считывать из него данные.
В идеале, нам хотелось бы как можно чаще писать в Node асинхронный код, чтобы избегать блокирования thread’а. Но благодаря маленькому размеру чанков можно не волноваться насчёт того, что синхронный readable.read() заблокирует thread.
Пример записываемого stream’а
Так что при использовании stream’ов вы можете применять события или pipe.
HTTP-stream’ы
Большинство из нас используют Node для создания веб-приложений: традиционных (серверных) или на основе REST API (клиентских). А что насчёт HTTP-запросов? Их можно стримить? Однозначно!
Запросы и отклики представляют из себя читаемые и записываемые stream’ы, наследуемые от эмиттеров событий. Можно прикрепить получателя событий data и принимать chunk в его callback’е, который можно сразу преобразовывать, не дожидаясь получения всего отклика. В следующем примере мы конкатенируем body и парсим его в callback события end :
Обратите внимание: согласно ES6, ()=><> является новым синтаксисом для анонимных функций, а const — новый оператор. Если вы ещё не знакомы с особенностями и синтаксисом ES6/ES2015, то можете изучить статью Top 10 свойств ES6, о которых должен знать каждый занятой JavaScript-разработчик.
Запустить это код можно через терминал:
С помощью npm можете установить себе Stream Handbook и stream-adventure:
Буферы
Какие типы мы можем использовать для бинарных данных? Если помните, в браузере JavaScript нет бинарного типа данных, а в Node есть. Это называется буфером. Он представляет собой глобальный объект, поэтому нет нужды импортировать его в виде модуля.
Можно использовать одно из этих выражений для создания бинарного типа:
Если не конвертировать буфер в строковое представление, то он будет выглядеть как массив чисел:
Если нам нужно лишь часть строки (sub string), то метод берёт начальное число и конечную позицию нужного отрезка:
data выполняет роль буфера при работе с файлами.
Кластеры
Противники Node часто приводят аргумент, что он может масштабироваться, поскольку обладает лишь одним thread’ом. Однако с помощью основного модуля cluster (вам не нужно его устанавливать, это часть платформы) мы можем использовать все ресурсы процессора на любой машине. Иными словами, благодаря кластерам мы можем вертикально масштабировать Node-приложения.
Код очень прост: импортируем модуль, создаём одного мастера и несколько работников (worker). Обычно создают по одному процессу на каждый ЦПУ, но это не является незыблемым правилом. Вы можете наделать столько процессов, сколько пожелаете, но с определённого момента прирост производительности прекратится, согласно закону убывания доходности.
В этом примере мой сервер выдаёт ID процессов, поэтому можно наблюдать, как разные работники обрабатывают разные запросы. Похоже на балансировщика нагрузки, но это лишь впечатление, потому что нагрузка не будет распределяться равномерно. Например, по PID вы увидите, как один из процессов может обрабатывать гораздо больше запросов.
Чтобы посмотреть, как разные работники обслуживают разные запросы, воспользуйтесь нагрузочным тестовым инструментом loadtest на базе Node:
Кластер — это часть ядра, и это практически единственное его преимущество. Когда ваш проект будет готов к развёртыванию, вам может понадобиться воспользоваться более продвинутым диспетчером процессов. Хорошим выбором могут быть:
Приятно то, что pm2 работает в фоновом режиме. Для просмотра исполняемых в данный момент процессов введите:
У вас могут быть другие результаты, но у меня в log.txt распределение получилось более-менее равномерным:
Сравниваем Spawn, Fork и Exec
Разница между error и stderr заключается в том, что первый мы получаем из exec() (скажем, program.js отказано в доступе), а второй — из вывода ошибки запущенной вами команды (например, program.js не смог подключиться к базе данных).
Обработка асинхронных ошибок
Модули и функции кидают ошибки, а мы их потом ловим. Так работает Java и синхронный Node. Но в Node.js лучше всего писать асинхронный код, чтобы не блокировать thread.
Благодаря циклу событий система может делегировать и применять расписание для кода, который должен быть выполнен в будущем, по завершении ресурсозатратных задач ввода/вывода. Но тут у нас возникает проблема с асинхронными ошибками, потому что контекст ошибки утрачивается.
К примеру, setTimeout() работает асинхронно, откладывая на будущее вызов callback’а. Аналогично поведёт себя и асинхронная функция, делающая HTTP-запрос, читающая из БД или пишущая в файл:
Другой хороший способ обработки асинхронных ошибок заключается в следующем:
on(‘error’)
uncaughtException
An unhandled exception means your application – and by extension Node.js itself – is in an undefined state. Если возобновить работу вслепую, то может произойти что угодно.
Domain
У domain нет ничего общего с сетевыми доменами в браузере. Это основной модуль Node.js для обработки асинхронных ошибок. Он сохраняет контекст, в котором реализован асинхронный код. Стандартный подход: создать копию domain и поместить код с ошибкой внутрь callback’а run() :
Давайте сделаем асинхронную ошибку с помощью того же setTimeout() :
Код не упадёт! От принадлежащего domain обработчика событий error мы получим красивое сообщение “Custom Error”, а не типичную для Node трассировку стека.
Аддоны на C++
Популярность Node среди разработчиков железа, IoT, дронов, роботов и умных гаджетов заключается в том, что он позволяет забавляться с более низкоуровневым кодом на С/С++. Как же можно писать свои С/С++ биндинги?
Это последняя из основных возможностей в этой статье. Большинство новичков в Node даже не представляют о том, что здесь можно писать собственные аддоны на С++! Это настолько просто, что мы прямо сейчас напишем аддон с нуля.
Даже если вы не знаток С, всё равно можете легко понять, что здесь происходит, ведь синтаксис не слишком сильно отличается от JavaScript. Строковым будет capital one :
А после экспортирования будет присвоено имя hello :
Процессы¶
В process Объект предоставляет информацию о текущем процессе Node.js. и контролирует его. Хотя он доступен как глобальный, рекомендуется явно получить к нему доступ через require или import:
События процесса¶
Событие: ‘beforeExit’ ¶
В ‘beforeExit’ Событие генерируется, когда Node.js очищает свой цикл событий и не имеет дополнительной работы для планирования. Обычно процесс Node.js завершается, когда нет запланированной работы, но слушатель зарегистрирован на ‘beforeExit’ может выполнять асинхронные вызовы и тем самым вызывать продолжение процесса Node.js.
Функция обратного вызова слушателя вызывается со значением process.exitCode передается как единственный аргумент.
В ‘beforeExit’ событие нет испускается для условий, вызывающих явное завершение, таких как вызов process.exit() или неперехваченные исключения.
В ‘beforeExit’ должен нет использоваться как альтернатива ‘exit’ событие, если не планируется запланировать дополнительную работу.
Событие: ‘disconnect’ ¶
Если процесс Node.js порождается с каналом IPC (см. Дочерний процесс а также Кластер документация), ‘disconnect’ событие будет сгенерировано, когда канал IPC будет закрыт.
Событие: ‘exit’ ¶
В ‘exit’ Событие генерируется, когда процесс Node.js собирается завершить работу в результате:
Невозможно предотвратить выход из цикла событий на этом этапе, и однажды все ‘exit’ слушатели завершили работу, процесс Node.js завершится.
Функция обратного вызова слушателя вызывается с кодом выхода, указанным либо в process.exitCode собственность, или exitCode аргумент передан в process.exit() метод.
Функции слушателя должен только выполнять синхронный операции. Процесс Node.js завершится сразу после вызова ‘exit’ прослушиватели событий, вызывающие любую дополнительную работу, все еще стоящую в очереди в цикле событий, должны быть отменены. В следующем примере, например, тайм-аут никогда не наступит:
Событие: ‘message’ ¶
Если процесс Node.js порождается с каналом IPC (см. Дочерний процесс а также Кластер документация), ‘message’ событие генерируется всякий раз, когда сообщение отправляется родительским процессом с использованием childprocess.send() получает дочерний процесс.
Сообщение проходит сериализацию и синтаксический анализ. Полученное сообщение может отличаться от исходного.
Если serialization опция была установлена на advanced используется при порождении процесса, message Аргумент может содержать данные, которые JSON не может представить. Видеть Расширенная сериализация для child_process Больше подробностей.
Событие: ‘multipleResolves’ ¶
В ‘multipleResolves’ событие генерируется всякий раз, когда Promise был либо:
Это полезно для отслеживания потенциальных ошибок в приложении при использовании Promise конструктор, так как несколько разрешений незаметно проглатываются. Однако возникновение этого события не обязательно указывает на ошибку. Например, Promise.race() может вызвать ‘multipleResolves’ событие.
Событие: ‘rejectionHandled’ ¶
В Promise объект ранее был бы испущен в ‘unhandledRejection’ событие, но в процессе обработки получил обработчик отклонения.
Нет понятия верхнего уровня для Promise цепочка, в которой всегда можно обработать отказ. По своей природе асинхронный Promise отклонение может быть обработано в будущем, возможно, намного позже, чем цикл обработки событий, необходимый для ‘unhandledRejection’ событие, которое будет выпущено.
Другой способ заявить об этом состоит в том, что, в отличие от синхронного кода, где есть постоянно растущий список необработанных исключений, с Promises может быть увеличивающийся и сокращающийся список необработанных отклонений.
В синхронном коде ‘uncaughtException’ Событие генерируется при увеличении списка необработанных исключений.
В асинхронном коде ‘unhandledRejection’ событие генерируется, когда список необработанных отклонений растет, а ‘rejectionHandled’ Событие генерируется, когда список необработанных отказов сокращается.
В этом примере unhandledRejections Map будет расти и уменьшаться со временем, отражая отказы, которые сначала не обрабатываются, а затем обрабатываются. Такие ошибки можно записывать в журнал ошибок либо периодически (что, вероятно, лучше всего для долго работающего приложения), либо при выходе из процесса (что, вероятно, наиболее удобно для сценариев).
Событие: ‘uncaughtException’ ¶
Есть возможность контролировать ‘uncaughtException’ события без отмены поведения по умолчанию, чтобы выйти из процесса, установив ‘uncaughtExceptionMonitor’ слушатель.
Предупреждение: использование ‘uncaughtException’ правильно¶
Исключения, созданные из обработчика событий, не будут перехвачены. Вместо этого процесс завершится с ненулевым кодом выхода, и будет напечатана трассировка стека. Это сделано для того, чтобы избежать бесконечной рекурсии.
Попытка возобновить работу в обычном режиме после неперехваченного исключения может быть аналогична выдергиванию шнура питания при обновлении компьютера. В девяти случаях из десяти ничего не происходит. Но в десятый раз система оказывается поврежденной.
Чтобы перезапустить аварийное приложение более надежным способом, независимо от того, ‘uncaughtException’ испускается или нет, внешний монитор должен использоваться в отдельном процессе для обнаружения сбоев приложения и восстановления или перезапуска по мере необходимости.
Событие: ‘uncaughtExceptionMonitor’ ¶
В ‘uncaughtExceptionMonitor’ событие генерируется перед ‘uncaughtException’ генерируется событие или устанавливается ловушка через process.setUncaughtExceptionCaptureCallback() называется.
Установка ‘uncaughtExceptionMonitor’ слушатель не меняет поведение после того, как ‘uncaughtException’ событие испускается. Если нет, процесс все равно выйдет из строя. ‘uncaughtException’ слушатель установлен.
Событие: ‘unhandledRejection’ ¶
В ‘unhandledRejection’ событие генерируется всякий раз, когда Promise отклоняется, и к обещанию не прикрепляется обработчик ошибок в ходе цикла обработки событий. При программировании с помощью обещаний исключения инкапсулируются как «отклоненные обещания». Отказ может быть обнаружен и обработан с помощью promise.catch() и распространяются через Promise цепь. В ‘unhandledRejection’ Событие полезно для обнаружения и отслеживания отклоненных обещаний, которые еще не были обработаны.
Следующее также вызовет ‘unhandledRejection’ событие, которое будет создано:
Событие: ‘warning’ ¶
В ‘warning’ Событие генерируется всякий раз, когда Node.js выдает предупреждение процесса.
Предупреждение процесса похоже на ошибку в том, что оно описывает исключительные условия, которые доводятся до сведения пользователя. Однако предупреждения не являются частью обычного потока обработки ошибок Node.js и JavaScript. Node.js может выдавать предупреждения всякий раз, когда обнаруживает неправильные методы кодирования, которые могут привести к неоптимальной производительности приложения, ошибкам или уязвимостям безопасности.
В следующем примере показано предупреждение, которое выводится на stderr когда к событию добавлено слишком много слушателей:
В отличие от этого, в следующем примере отключается вывод предупреждений по умолчанию и добавляется пользовательский обработчик в ‘warning’ событие:
Событие: ‘worker’ ¶
В ‘worker’ событие генерируется после создания нового потока
Выдача настраиваемых предупреждений¶
Увидеть process.emitWarning() метод выдачи настраиваемых предупреждений или предупреждений для конкретных приложений.
Имена предупреждений Node.js¶
Нет никаких строгих правил для типов предупреждений (как указано в name property), создаваемый Node.js. Новые типы предупреждений могут быть добавлены в любое время. Вот некоторые из наиболее распространенных типов предупреждений:
Сигнальные события¶
Сигналы недоступны на Worker потоки.
Имя каждого события будет общим именем сигнала в верхнем регистре (например, ‘SIGINT’ для SIGINT сигналы).
process.abort() ¶
В process.abort() приводит к немедленному завершению процесса Node.js и генерации основного файла.
Эта функция недоступна в Worker потоки.
process.allowedNodeEnvironmentFlags ¶
В process.allowedNodeEnvironmentFlags свойство является специальным, доступным только для чтения Set флагов, допустимых в пределах NODE_OPTIONS переменная окружения.
Если Node.js был скомпилирован без NODE_OPTIONS поддержка (показано в process.config ), process.allowedNodeEnvironmentFlags будет содержать то, что имел бы было допустимо.
process.arch ¶
process.argv ¶
Например, если следующий сценарий для process-args.js :
Запуск процесса Node.js как:
process.argv0 ¶
В process.argv0 свойство хранит доступную только для чтения копию исходного значения argv[0] передается при запуске Node.js.
process.channel ¶
process.channel.ref() ¶
Обычно это достигается за счет количества ‘disconnect’ а также ‘message’ слушатели на process объект. Однако этот метод можно использовать для явного запроса определенного поведения.
process.channel.unref() ¶
Этот метод заставляет канал IPC не поддерживать цикл обработки событий процесса и позволяет ему завершиться, даже когда канал открыт.
Обычно это достигается за счет количества ‘disconnect’ а также ‘message’ слушатели на process объект. Однако этот метод можно использовать для явного запроса определенного поведения.
process.chdir(directory) ¶
В process.chdir() изменяет текущий рабочий каталог процесса Node.js или выдает исключение, если это не удается (например, если указанный directory не существует).
Эта функция недоступна в Worker потоки.
process.config ¶
Пример возможного вывода выглядит так:
Изменение process.config свойство или любое дочернее свойство process.config объект устарел. В process.config в будущем выпуске будет доступен только для чтения.
process.connected ¶
Если процесс Node.js порождается с каналом IPC (см. Дочерний процесс а также Кластер документация), process.connected собственность вернется true пока канал IPC подключен и вернется false после process.disconnect() называется.
process.cpuUsage([previousValue]) ¶
Результат предыдущего вызова process.cpuUsage() может быть передан в качестве аргумента функции, чтобы получить показание разницы.
process.cwd() ¶
В process.cwd() метод возвращает текущий рабочий каталог процесса Node.js.
process.debugPort ¶
Порт, используемый отладчиком Node.js, когда он включен.
process.disconnect() ¶
Если процесс Node.js порождается с каналом IPC (см. Дочерний процесс а также Кластер документация), process.disconnect() Метод закроет канал IPC для родительского процесса, позволяя дочернему процессу корректно завершиться, если нет других соединений, поддерживающих его работу.
Эффект звонка process.disconnect() это то же самое, что и звонок ChildProcess.disconnect() из родительского процесса.
process.dlopen(module, filename[, flags]) ¶
В process.dlopen() Метод позволяет динамически загружать общие объекты. Он в основном используется require() для загрузки надстроек C ++ и не должны использоваться напрямую, за исключением особых случаев. Другими словами, require() следует предпочесть process.dlopen() если нет особых причин, таких как настраиваемые флаги dlopen или загрузка из модулей ES.
process.emitWarning(warning[, options]) ¶
В process.emitWarning() может использоваться для выдачи настраиваемых предупреждений процесса или предупреждений для конкретного приложения. Их можно прослушать, добавив обработчик к ‘warning’ событие.
В этом примере Error объект создается внутри process.emitWarning() и прошел в ‘warning’ обработчик.
Если warning передается как Error объект, options аргумент игнорируется.
process.emitWarning(warning[, type[, code]][, ctor]) ¶
В process.emitWarning() может использоваться для выдачи настраиваемых предупреждений процесса или предупреждений для конкретного приложения. Их можно прослушать, добавив обработчик к ‘warning’ событие.
В каждом из предыдущих примеров Error объект создается внутри process.emitWarning() и прошел в ‘warning’ обработчик.
А TypeError бросается, если warning это что-нибудь кроме строки или Error объект.
В то время как предупреждения процесса используют Error объектов, механизм предупреждения процесса нет замена обычных механизмов обработки ошибок.
Следующая дополнительная обработка реализуется, если предупреждение type является ‘DeprecationWarning’ :
Избегайте повторяющихся предупреждений¶
Рекомендуется выдавать предупреждения только один раз для каждого процесса. Для этого рекомендуется разместить emitWarning() за простым логическим флагом, как показано в примере ниже:
process.env ¶
В process.env свойство возвращает объект, содержащий пользовательскую среду. Смотрите среду (7).
Пример этого объекта выглядит так:
Этот объект можно изменить, но такие изменения не будут отражены вне процесса Node.js или (если явно не запрошено) на другие Worker потоки. Другими словами, следующий пример не будет работать:
Пока будет следующее:
Назначение собственности на process.env неявно преобразует значение в строку. Такое поведение устарело. В будущих версиях Node.js может возникнуть ошибка, если значение не является строкой, числом или логическим значением.
В операционных системах Windows переменные среды нечувствительны к регистру.
process.execArgv ¶
В process.execArgv Свойство возвращает набор специфичных для Node.js параметров командной строки, переданных при запуске процесса Node.js. Эти параметры не отображаются в массиве, возвращаемом process.argv и не включайте исполняемый файл Node.js, имя сценария или любые параметры, следующие за именем сценария. Эти параметры полезны для создания дочерних процессов с той же средой выполнения, что и родительский.
Результаты в process.execArgv :
А также process.argv :
Ссылаться на Worker конструктор для подробного описания поведения рабочих потоков с этим свойством.
process.execPath ¶
В process.execPath Свойство возвращает абсолютный путь к исполняемому файлу, запустившему процесс Node.js. Символические ссылки, если они есть, разрешаются.
process.exit([code]) ¶
Чтобы выйти с кодом ошибки:
В большинстве случаев звонить process.exit() явно. Процесс Node.js завершится сам по себе если нет ожидающих дополнительных работ в цикле событий. В process.exitCode Свойство может быть установлено, чтобы сообщить процессу, какой код выхода использовать, когда процесс завершается корректно.
Например, следующий пример иллюстрирует злоупотребление принадлежащий process.exit() метод, который может привести к усечению и потере данных, выводимых на стандартный вывод:
Вместо того, чтобы звонить process.exit() напрямую, код должен установить process.exitCode и позволить процессу завершиться естественным образом, избегая планирования какой-либо дополнительной работы для цикла событий:
В Worker потоков, эта функция останавливает текущий поток, а не текущий процесс.
process.exitCode ¶
Число, которое будет кодом выхода процесса, когда процесс завершается корректно или завершается через process.exit() без указания кода.
process.getegid() ¶
В process.getegid() метод возвращает числовую эффективную групповую идентификацию процесса Node.js. (См. Getegid (2).)
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android).
process.geteuid() ¶
В process.geteuid() Метод возвращает числовой идентификатор эффективного пользователя процесса. (См. Geteuid (2).)
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android).
process.getgid() ¶
В process.getgid() Метод возвращает числовую групповую идентификацию процесса. (См. Getgid (2).)
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android).
process.getgroups() ¶
В process.getgroups() Метод возвращает массив с дополнительными идентификаторами групп. POSIX оставляет его неопределенным, если включен эффективный идентификатор группы, но Node.js гарантирует, что это всегда будет.
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android).
process.getuid() ¶
В process.getuid() Метод возвращает числовой идентификатор пользователя процесса. (См. Getuid (2).)
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android).
process.hasUncaughtExceptionCaptureCallback() ¶
process.hrtime([time]) ¶
Это устаревшая версия process.hrtime.bigint() до bigint был введен в JavaScript.
process.hrtime.bigint() ¶
process.initgroups(user, extraGroup) ¶
В process.initgroups() метод читает /etc/group файл и инициализирует список доступа группы, используя все группы, членом которых является пользователь. Это привилегированная операция, требующая, чтобы процесс Node.js имел root доступ или CAP_SETGID возможность.
Будьте осторожны при отказе от привилегий:
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android). Эта функция недоступна в Worker потоки.
process.kill(pid[, signal]) ¶
Этот метод выдаст ошибку, если цель pid не существует. В частном случае сигнал 0 может использоваться для проверки существования процесса. Платформы Windows выдадут ошибку, если pid используется для уничтожения группы процессов.
Когда SIGUSR1 получен процессом Node.js, Node.js запустит отладчик. Видеть Сигнальные события.
process.mainModule ¶
process.memoryUsage() ¶
Возвращает объект, описывающий использование памяти процессом Node.js, измеренное в байтах.
Когда используешь Worker потоки, rss будет значением, действительным для всего процесса, в то время как другие поля будут относиться только к текущему потоку.
В process.memoryUsage() метод выполняет итерацию по каждой странице для сбора информации об использовании памяти, которая может быть медленной в зависимости от распределения памяти программы.
process.memoryUsage.rss() ¶
В process.memoryUsage.rss() возвращает целое число, представляющее размер резидентного набора (RSS) в байтах.
Это то же значение, что и rss собственность предоставлена process.memoryUsage() но process.memoryUsage.rss() быстрее.
Это важно при разработке API, чтобы дать пользователям возможность назначать обработчики событий. после объект был построен, но до того, как произошел какой-либо ввод-вывод:
Очень важно, чтобы API были на 100% синхронными или на 100% асинхронными. Рассмотрим этот пример:
Этот API опасен, потому что в следующем случае:
Неясно, действительно ли foo() или bar() будет называться первым.
Намного лучше следующий подход:
Когда использовать queueMicrotask() против. process.nextTick() ¶
Одно заслуживающее внимания различие между двумя API заключается в том, что process.nextTick() позволяет указать дополнительные значения, которые будут переданы в качестве аргументов отложенной функции при ее вызове. Достижение того же результата с queueMicrotask() требует использования либо замыкания, либо связанной функции:
Существуют незначительные различия в способах обработки ошибок, возникающих в очереди следующих тиков и очереди микрозадач. Ошибки, возникающие при обратном вызове микрозадач в очереди, должны обрабатываться в обратном вызове в очереди, когда это возможно. Если это не так, process.on(‘uncaughtException’) обработчик событий может использоваться для захвата и обработки ошибок.
process.noDeprecation ¶
process.pid ¶
В process.pid свойство возвращает PID процесса.
process.platform ¶
В process.platform Свойство возвращает строку, определяющую платформу операционной системы, на которой выполняется процесс Node.js.
В настоящее время возможные значения:
Значение ‘android’ также может быть возвращено, если Node.js создан в операционной системе Android. Однако поддержка Android в Node.js экспериментальный.
process.ppid ¶
В process.ppid свойство возвращает PID родителя текущего процесса.
process.release ¶
В process.release свойство возвращает Object содержащие метаданные, относящиеся к текущему выпуску, включая URL-адреса исходного архива и архива только для заголовков.
process.release содержит следующие свойства:
В пользовательских сборках из невыполненных версий дерева исходных текстов только name собственность может присутствовать. Не следует полагаться на существование дополнительных свойств.
process.report ¶
process.report.compact ¶
Пишите отчеты в компактном формате, однострочном JSON, который легче использовать для систем обработки журналов, чем многострочный формат по умолчанию, предназначенный для использования людьми.
process.report.directory ¶
process.report.filename ¶
process.report.getReport([err]) ¶
Дополнительная документация доступна в отчетная документация.
process.report.reportOnFatalError ¶
process.report.reportOnSignal ¶
process.report.reportOnUncaughtException ¶
process.report.signal ¶
process.report.writeReport([filename][, err]) ¶
filename <строка>Имя файла, в котором написан отчет. Это должен быть относительный путь, который будет добавлен к каталогу, указанному в process.report.directory или текущий рабочий каталог процесса Node.js, если он не указан.
err
Returns:
Дополнительная документация доступна в отчетная документация.
process.resourceUsage() ¶
process.send(message[, sendHandle[, options]][, callback]) ¶
Если Node.js создается с каналом IPC, process.send() может использоваться для отправки сообщений родительскому процессу. Сообщения будут приходить в виде ‘message’ событие на родительском ChildProcess объект.
Сообщение проходит сериализацию и синтаксический анализ. Полученное сообщение может отличаться от исходного.
process.setegid(id) ¶
В process.setegid() Метод устанавливает эффективную групповую идентичность процесса. (См. Setegid (2).) id может быть передан как числовой идентификатор или как строка имени группы. Если указано имя группы, этот метод блокируется при разрешении связанного числового идентификатора.
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android). Эта функция недоступна в Worker потоки.
process.seteuid(id) ¶
В process.seteuid() Метод устанавливает эффективную идентификацию пользователя процесса. (См. Seteuid (2).) id может быть передан как числовой идентификатор или как строка имени пользователя. Если указано имя пользователя, метод блокируется при разрешении связанного числового идентификатора.
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android). Эта функция недоступна в Worker потоки.
process.setgid(id) ¶
В process.setgid() устанавливает групповой идентификатор процесса. (См. Setgid (2).) id может быть передан как числовой идентификатор или как строка имени группы. Если указано имя группы, этот метод блокируется при разрешении связанного числового идентификатора.
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android). Эта функция недоступна в Worker потоки.
process.setgroups(groups) ¶
В process.setgroups() устанавливает дополнительные идентификаторы групп для процесса Node.js. Это привилегированная операция, требующая, чтобы процесс Node.js root или CAP_SETGID возможность.
В groups массив может содержать числовые идентификаторы групп, имена групп или и то, и другое.
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android). Эта функция недоступна в Worker потоки.
process.setuid(id) ¶
В process.setuid(id) устанавливает идентификатор пользователя процесса. (См. Setuid (2).) id может быть передан как числовой идентификатор или как строка имени пользователя. Если указано имя пользователя, метод блокируется при разрешении связанного числового идентификатора.
Эта функция доступна только на платформах POSIX (то есть не в Windows или Android). Эта функция недоступна в Worker потоки.
process.setSourceMapsEnabled(val) ¶
Эта функция включает или отключает Исходная карта v3 поддержка трассировки стека.
Только исходные карты в файлах JavaScript, которые загружаются после включения исходных карт, будут проанализированы и загружены.
process.setUncaughtExceptionCaptureCallback(fn) ¶
В process.setUncaughtExceptionCaptureCallback() function устанавливает функцию, которая будет вызываться при возникновении неперехваченного исключения, которая получит само значение исключения в качестве своего первого аргумента.
Чтобы отключить функцию захвата, process.setUncaughtExceptionCaptureCallback(null) может быть использовано. Вызов этого метода с не- null аргумент, когда установлена другая функция захвата, вызовет ошибку.
Использование этой функции является взаимоисключающим с использованием устаревшего domain встроенный модуль.
process.stderr ¶
В process.stderr свойство возвращает поток, подключенный к stderr (fd 2 ). Это net.Socket (что является Дуплекс stream), если только fd 2 относится к файлу, и в этом случае это Возможность записи транслировать.
process.stderr отличается от других потоков Node.js. Видеть примечание по вводу / выводу процесса для дополнительной информации.
process.stderr.fd ¶
process.stdin ¶
В process.stdin свойство возвращает поток, подключенный к stdin (fd 0 ). Это net.Socket (что является Дуплекс stream), если только fd 0 относится к файлу, и в этом случае это Удобочитаемый транслировать.
Как Дуплекс транслировать, process.stdin также может использоваться в «старом» режиме, который совместим со сценариями, написанными для Node.js до v0.10. Для получения дополнительной информации см. Совместимость потоков.
В режиме «старых» потоков stdin поток по умолчанию приостановлен, поэтому необходимо вызвать process.stdin.resume() читать с него. Также обратите внимание, что вызов process.stdin.resume() Сам бы переключил поток в «старый» режим.
process.stdin.fd ¶
process.stdout ¶
В process.stdout свойство возвращает поток, подключенный к stdout (fd 1 ). Это net.Socket (что является Дуплекс stream), если только fd 1 относится к файлу, и в этом случае это Возможность записи транслировать.
Например, чтобы скопировать process.stdin к process.stdout :
process.stdout отличается от других потоков Node.js. Видеть примечание по вводу / выводу процесса для дополнительной информации.
process.stdout.fd ¶
Замечание по вводу / выводу процесса¶
process.stdout а также process.stderr отличаются от других потоков Node.js важными способами:
Такое поведение частично обусловлено историческими причинами, поскольку их изменение может создать обратную несовместимость, но некоторые пользователи также ожидают этого.
Синхронная запись позволяет избежать таких проблем, как вывод, записанный с помощью console.log() или console.error() неожиданно перемежается или вообще не записывается, если process.exit() вызывается до завершения асинхронной записи. Видеть process.exit() для дополнительной информации.
Предупреждение: Синхронная запись блокирует цикл событий до тех пор, пока запись не будет завершена. Это может происходить почти мгновенно в случае вывода в файл, но при высокой загрузке системы, каналах, которые не читаются на принимающей стороне, или с медленными терминалами или файловыми системами, цикл событий может блокироваться достаточно часто. и достаточно долго, чтобы иметь серьезные негативные последствия для производительности. Это может не быть проблемой при записи в интерактивный сеанс терминала, но будьте особенно осторожны при ведении производственного журнала в потоки вывода процесса.
Чтобы проверить, подключен ли поток к Телетайп контекст, проверьте isTTY имущество.
Увидеть Телетайп документация для получения дополнительной информации.