Экспресс 4 отзывы Форекс экспресс

7 мая 2020 Автор: Eduard

4.x API.
экспресс ()
Создает приложение Express.

Функция express () — это функция верхнего уровня, экспортируемая модулем express..
методы.
express.json ([параметры])

Это промежуточное ПО доступно в Express v4.16.0 и выше.
Это встроенная функция промежуточного программного обеспечения в Express. Он анализирует входящие запросы с полезными нагрузками JSON и основан на body-parser.
Возвращает промежуточное программное обеспечение, которое анализирует только JSON и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает любую кодировку Unicode тела и поддерживает автоматическое наложение кодировок gzip и deflate..

Новый объект тела, содержащий проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (то есть req.body) или пустого объекта (), если не было тела для анализа, Content-Type не был найден или произошла ошибка.
Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.foo.toString () может завершиться с ошибкой несколькими способами, например, foo может отсутствовать или не быть строкой, а toString не может быть функцией, а вместо этого строкой или другим пользовательским вводом.
В следующей таблице описаны свойства объекта необязательных опций.
Свойство Описание Тип Default inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются.

Boolean true limit Управляет максимальным размером тела запроса. Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа. Смешанный "100kb" reviver Опция reviver передается непосредственно в JSON.parse в качестве второго аргумента. Вы можете найти больше информации об этом аргументе в документации MDN о JSON.parse.

Функция null strict Включает или отключает прием только массивов и объектов; когда отключено, примет что-нибудь JSON.parse принимает. Boolean true type Используется для определения типа носителя, который будет анализировать промежуточное ПО. Эта опция может быть строкой, массивом строк или функцией. Если это не функция, опция type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, json), тип mime (например, application / json) или тип mime с подстановочным знаком (например, * / *). или * / JSON). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение.

Смешанный «application / json» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — кодировка запроса. Разбор может быть прерван путем выдачи ошибки. Функция не определена.
express.raw ([параметры])
Это промежуточное ПО доступно в Express v4.17.0 и выше.

Это встроенная функция промежуточного программного обеспечения в Express. Он анализирует полезные нагрузки входящих запросов в буфер и основан на body-parser.
Возвращает промежуточное ПО, которое анализирует все тела как Буфер и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает любую кодировку Unicode тела и поддерживает автоматическое наложение кодировок gzip и deflate..

Новый буфер тела, содержащий проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (т. Е. Req.body) или пустой объект (), если не было тела для анализа, Content-Type не был найден или произошла ошибка.
Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.toString () может завершиться ошибкой несколькими способами, например, наложение нескольких парсеров req.body может быть из другого парсера. Перед вызовом методов буфера рекомендуется проверить, что req.body является буфером..

В следующей таблице описаны свойства объекта необязательных опций.
Свойство Описание Тип Default inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются. Boolean true limit Управляет максимальным размером тела запроса.

Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа. Смешанный тип «100 КБ» Используется для определения типа носителя, который будет анализировать промежуточное программное обеспечение. Эта опция может быть строкой, массивом строк или функцией.

Если это не функция, опция type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, bin), тип mime (например, application / octet-stream) или тип mime с подстановочным знаком (например, * / * или приложение / *). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение. Смешанный «application / octet-stream» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — кодировка запроса. Разбор может быть прерван путем выдачи ошибки.

Функция не определена.
express.Router ([параметры])
Создает новый объект маршрутизатора.
Необязательный параметр options указывает поведение маршрутизатора.

Свойство Описание По умолчанию Доступность caseSensitive Включить чувствительность к регистру. По умолчанию отключено, обрабатывая «/ Foo» и «/ foo» одинаково. mergeParams Сохраните значения req.params от родительского маршрутизатора. Если родительский и дочерний элементы имеют конфликтующие имена параметров, значение дочернего элемента имеет приоритет. false 4.5.0+ strict Включить строгую маршрутизацию. По умолчанию отключено, «/ foo» и «/ foo /» обрабатываются маршрутизатором одинаково.
Вы можете добавить промежуточное программное обеспечение и маршруты HTTP-метода (такие как get, put, post и т. Д.) К маршрутизатору, как приложение.

Для получения дополнительной информации см. Маршрутизатор.
express.static (root, [options])
Это встроенная функция промежуточного программного обеспечения в Express.

Он обслуживает статические файлы и основан на статических файлах..
ПРИМЕЧАНИЕ. Для достижения наилучших результатов используйте кэш обратного прокси-сервера для повышения производительности обслуживания статических ресурсов..
Корневой аргумент указывает корневой каталог для обслуживания статических ресурсов.

Функция определяет файл для обслуживания, комбинируя req.url с предоставленным корневым каталогом. Когда файл не найден, вместо отправки ответа 404 он вместо этого вызывает next () для перехода к следующему промежуточному программному обеспечению, что позволяет создавать стеки и выполнять откат.
В следующей таблице описаны свойства объекта параметров. Смотрите также пример ниже.

Свойство Описание Тип Точечные файлы по умолчанию Определяет, как обрабатываются точечные файлы (файлы или каталоги, начинающиеся с точки «.»)..
Смотрите дотфайлы ниже. Строка «игнорировать» etag Включить или отключить генерацию etag.
ПРИМЕЧАНИЕ: express.static всегда отправляет слабые ETag. Boolean true extensions Устанавливает запасные варианты расширения файла: если файл не найден, найдите файлы с указанными расширениями и обслужите первое найденное.

Пример: [‘html’, ‘htm’]. Смешанное ложное падение Пусть клиентские ошибки переходят как необработанные запросы, в противном случае переадресация ошибки клиента.
Смотрите описание ниже. Boolean true immutable Включение или отключение директивы immutable в заголовке ответа Cache-Control.

Если включено, параметр maxAge также должен быть указан для включения кэширования. Директива immutable не позволит поддерживаемым клиентам делать условные запросы в течение срока действия параметра maxAge, чтобы проверить, изменился ли файл. Boolean false index Отправляет указанный файл индекса каталога. Установите в false, чтобы отключить индексацию каталога.

Смешанный «index.html» lastModified Установите заголовок Last-Modified на дату последнего изменения файла в ОС. Boolean true maxAge Установите свойство max-age заголовка Cache-Control в миллисекундах или строку в формате ms. Номер 0 перенаправить Перенаправить на конечный «/», когда путь является каталогом. Boolean true setHeaders Функция для настройки заголовков HTTP для обслуживания с файлом.

Смотрите setHeaders ниже. функция.
точечные файлы.
Возможные значения для этой опции:
«Allow» — нет специального режима для файлов точек «Deny» — отклонить запрос для точечного файла, ответить 403, затем вызвать next (). «Игнорировать» — действовать так, как будто точечный файл не существует, ответить 404, затем вызвать next () .
ПРИМЕЧАНИЕ: со значением по умолчанию он не будет игнорировать файлы в каталоге, который начинается с точки.

провалиться.
Когда этот параметр имеет значение true, клиентские ошибки, такие как неверный запрос или запрос к несуществующему файлу, заставят это промежуточное ПО просто вызывать next (), чтобы вызвать следующее промежуточное ПО в стеке. Если ложь, эти ошибки (даже 404 с) будут вызывать следующее (ошибаться) .
Установите для этого параметра значение true, чтобы можно было сопоставить несколько физических каталогов с одним и тем же веб-адресом или для маршрутов для заполнения несуществующих файлов..

Используйте false, если вы смонтировали это промежуточное ПО по пути, предназначенному для строго одного каталога файловой системы, что позволяет закорачивать 404 с меньшими издержками. Это промежуточное ПО также ответит на все методы.
setHeaders.

Для этого параметра укажите функцию для установки пользовательских заголовков ответа. Изменения в заголовках должны происходить синхронно.
Сигнатура функции:
res, объект ответа. путь, путь к файлу, который отправляется. stat, объект stat файла, который отправляется.

Пример express.static.
Вот пример использования функции промежуточного программного обеспечения express.static со сложным объектом параметров:
express.text ([параметры])
Это промежуточное ПО доступно в Express v4.17.0 и выше.
Это встроенная функция промежуточного программного обеспечения в Express.

Он анализирует полезные нагрузки входящих запросов в строку и основан на body-parser.
Возвращает промежуточное ПО, которое анализирует все тела как строку и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает любую кодировку Unicode тела и поддерживает автоматическое наложение кодировок gzip и deflate..
Новая строка тела, содержащая проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (то есть req.body) или пустого объекта (), если не было тела для анализа, Content-Type не был найден или произошла ошибка.

Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.trim () может завершиться ошибкой несколькими способами, например, наложение нескольких парсеров req.body может быть из другого парсера. Рекомендуется проверить, что req.body — строка перед вызовом строковых методов..
В следующей таблице описаны свойства объекта необязательных опций.

Свойство Описание Тип Default defaultCharset Укажите набор символов по умолчанию для текстового содержимого, если кодировка не указана в заголовке Content-Type запроса. Строка "utf-8" inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются. Boolean true limit Управляет максимальным размером тела запроса. Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа. Смешанный тип «100 КБ» Используется для определения типа носителя, который будет анализировать промежуточное программное обеспечение.

Эта опция может быть строкой, массивом строк или функцией. Если это не функция, параметр type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, txt), тип MIME (например, text / plain) или тип MIME с подстановочным знаком (например, * / *). или текст / *). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение. Смешанный «text / plain» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — кодировка запроса. Разбор может быть прерван путем выдачи ошибки.

Функция не определена.
express.urlencoded ([параметры])
Это промежуточное ПО доступно в Express v4.16.0 и выше.
Это встроенная функция промежуточного программного обеспечения в Express. Он анализирует входящие запросы с полезной нагрузкой urlencoded и основан на body-parser.

Возвращает промежуточное программное обеспечение, которое анализирует только тела с урлен-кодом и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает только кодировку тела UTF-8 и поддерживает автоматическое наложение кодировок gzip и deflate..
Новый объект тела, содержащий проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (т.е. req.body) или пустого объекта (), если не было тела для анализа, Content-Type не был найден или произошла ошибка. , Этот объект будет содержать пары ключ-значение, где значение может быть строкой или массивом (если для параметра extended установлено значение false), или для любого типа (если для параметра extended установлено значение true)..

Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.foo.toString () может завершиться с ошибкой несколькими способами, например, foo может отсутствовать или не быть строкой, а toString не может быть функцией, а вместо этого строкой или другим пользовательским вводом.
В следующей таблице описаны свойства объекта необязательных опций.
Свойство Описание Тип По умолчанию расширенный Этот параметр позволяет выбирать между синтаксическим анализом данных в кодировке URL с библиотекой строк запроса (при значении false) или библиотекой qs (при значении true). «Расширенный» синтаксис позволяет кодировать расширенные объекты и массивы в формат URL-кодирования, что позволяет использовать JSON-подобный интерфейс с кодированием URL. Для получения дополнительной информации, пожалуйста, смотрите библиотеку qs.

Boolean true inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются. Boolean true limit Управляет максимальным размером тела запроса. Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа.

Смешанный "100kb" параметрLimit Этот параметр управляет максимальным количеством параметров, разрешенных в данных в кодировке URL. Если запрос содержит больше параметров, чем это значение, возникнет ошибка. Тип Number 1000 Используется для определения типа носителя, который будет анализировать промежуточное программное обеспечение.

Эта опция может быть строкой, массивом строк или функцией. Если это не функция, параметр type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, urlencoded), тип MIME (например, application / x-www-form-urlencoded) или тип MIME с подстановочный знак (например, * / x-www-form-urlencoded). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение. Смешанный «application / x-www-form-urlencoded» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — это кодировка запрос. Разбор может быть прерван путем выдачи ошибки.

Функция не определена.
заявка.
Объект приложения условно обозначает приложение Express.

Создайте его, вызвав функцию верхнего уровня express (), экспортированную модулем Express:
Объект приложения имеет методы для.
Маршрутизация HTTP-запросов; см., например, app.METHOD и app.param.

Настройка промежуточного программного обеспечения; см. app.route. Рендеринг представлений HTML; см. app.render. Регистрация шаблонного движка; см. app.engine.

Он также имеет настройки (свойства), которые влияют на поведение приложения; Для получения дополнительной информации см. Настройки приложения..
Объект приложения Express можно ссылаться из объекта запроса и объекта ответа как req.app и res.app соответственно.
свойства.

app.locals.
Объект app.locals имеет свойства, которые являются локальными переменными в приложении.
После установки значения свойств app.locals сохраняются в течение всего жизненного цикла приложения, в отличие от свойств res.locals, которые действительны только в течение срока действия запроса..
Вы можете получить доступ к локальным переменным в шаблонах, отображаемых в приложении.

Это полезно для предоставления вспомогательных функций для шаблонов, а также для данных уровня приложения. Локальные переменные доступны в промежуточном программном обеспечении через req.app.locals (см. Req.app)
app.mountpath.
Свойство app.mountpath содержит один или несколько шаблонов пути, по которым было смонтировано под-приложение..

Под-приложение — это экземпляр Express, который может использоваться для обработки запроса к маршруту..
Это похоже на свойство baseUrl объекта req, за исключением того, что req.baseUrl возвращает сопоставленный путь URL-адреса вместо сопоставленных шаблонов..
Если вложенное приложение смонтировано на нескольких шаблонах пути, app.mountpath возвращает список шаблонов, на которых оно смонтировано, как показано в следующем примере..

Мероприятия.
app.on (‘mount’, callback (parent))
Событие монтирования запускается во вложенном приложении, когда оно монтируется в родительском приложении. Родительское приложение передается в функцию обратного вызова..

НОТА.
Не наследовать значения параметров, которые имеют значение по умолчанию. Вы должны установить значение в подпрограмме. Унаследуйте значение настроек без значения по умолчанию.
методы.

app.all (путь, обратный вызов [, обратный вызов.])
Этот метод похож на стандартные методы app.METHOD (), за исключением того, что он соответствует всем HTTP-глаголам.
аргументы.

Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного.

Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми).

Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Примеры.
Следующий запрос выполняется для запросов к / secret, используя GET, POST, PUT, DELETE или любой другой метод HTTP-запроса:
Метод app.all () полезен для отображения «глобальной» логики для определенных префиксов пути или произвольных совпадений.

Например, если вы поместите следующее в начало всех других определений маршрутов, это требует, чтобы все маршруты с этого момента требовали аутентификации и автоматически загружали пользователя. Имейте в виду, что эти обратные вызовы не должны действовать как конечные точки: loadUser может выполнить задачу, а затем вызвать next (), чтобы продолжить сопоставление последующих маршрутов..
Или эквивалент:
Другим примером является «глобальная» функциональность из белого списка. Пример похож на приведенный выше, но он ограничивает только пути, начинающиеся с «/ api»:
app.delete (путь, обратный вызов [, обратный вызов.])

Направляет HTTP-запросы DELETE на указанный путь с указанными функциями обратного вызова. Для получения дополнительной информации см. Руководство по маршрутизации..

аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного.

Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения.

Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..
Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..

Экспресс 4 отзывы Форекс экспресс

пример.
app.disable (имя)
Устанавливает логическое имя параметра в значение false, где имя является одним из свойств из таблицы настроек приложения. Вызов app.set (‘foo’, false) для логического свойства аналогичен вызову app.disable (‘foo’) .
app.disabled (имя)
Возвращает true, если логическое имя параметра отключено (false), где name — это одно из свойств из таблицы настроек приложения.

app.enable (имя)
Устанавливает логическое имя параметра в значение true, где имя — это одно из свойств из таблицы параметров приложения. Вызов app.set (‘foo’, true) для логического свойства аналогичен вызову app.enable (‘foo’) .
app.enabled (имя)
Возвращает true, если имя параметра включено (true), где name является одним из свойств из таблицы настроек приложения.
app.engine (ext, callback)

Регистрирует данный обратный вызов механизма шаблонов как ext .
По умолчанию Express потребует () механизм, основанный на расширении файла. Например, если вы попытаетесь визуализировать файл «foo.pug», Express автоматически вызывает следующее и кэширует require () при последующих вызовах для повышения производительности..
Используйте этот метод для механизмов, которые не предоставляют .__ express из коробки, или если вы хотите «сопоставить» другое расширение с механизмом шаблонов.
Например, чтобы сопоставить шаблонизатор EJS с файлами «.html»:

В этом случае EJS предоставляет метод .renderFile () с той же сигнатурой, которую ожидает Express: (путь, параметры, обратный вызов), хотя обратите внимание, что он называет этот метод внутренним псевдонимом ejs .__ express, поэтому, если вы используете «.ejs» расширения вам не нужно ничего делать.
Некоторые движки шаблонов не следуют этому соглашению. Библиотека consolidate.js отображает механизмы шаблонов Node в соответствии с этим соглашением, поэтому они без проблем работают с Express.

app.get (имя)
Возвращает значение параметра имени приложения, где имя — это одна из строк в таблице настроек приложения. Например:
app.get (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запросы GET на указанный путь с указанными функциями обратного вызова..
аргументы.

Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям.

Массив комбинаций любого из вышеперечисленного. Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения.

Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Для получения дополнительной информации см. Руководство по маршрутизации..
пример.

app.listen (путь, [обратный вызов])
Запускает сокет UNIX и прослушивает соединения по заданному пути. Этот метод идентичен http.Server.listen () Node.
app.listen ([port [, host [, backlog]]] [, callback])

Связывает и прослушивает соединения на указанном хосте и порте. Этот метод идентичен http.Server.listen () Node.
Если порт опущен или равен 0, операционная система назначит произвольный неиспользуемый порт, что полезно в таких случаях, как автоматизированные задачи (тесты и т. Д.).
Приложение, возвращаемое функцией express (), фактически является функцией JavaScript, разработанной для передачи на HTTP-серверы Node в качестве обратного вызова для обработки запросов.

Это упрощает предоставление версий вашего приложения как HTTP, так и HTTPS с одной и той же базой кода, поскольку приложение не наследует их (это просто обратный вызов):
Метод app.listen () возвращает объект http.Server и (для HTTP) является вспомогательным методом для следующего:
ПРИМЕЧАНИЕ.

Все формы метода Node http.Server.listen () фактически поддерживаются..
app.METHOD (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запрос, где METHOD — это HTTP-метод запроса, такой как GET, PUT, POST и т. Д., В нижнем регистре. Таким образом, фактическими методами являются app.get (), app.post (), app.put () и так далее.

См. Способы маршрутизации ниже для полного списка.
аргументы.

Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см.

Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения.

Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Методы маршрутизации.
Express поддерживает следующие методы маршрутизации, соответствующие методам HTTP с такими же именами:
оформить заказ удалить удалить получить блокировку головы слияние mkactivity mkcol переместить m-поиск параметры уведомлений патч очистить сообщение поставить отчет поиск подписаться трассировка разблокировать отписаться.

Документация API содержит явные записи только для самых популярных методов HTTP app.get (), app.post (), app.put () и app.delete (). Однако другие методы, перечисленные выше, работают точно так же.
Для маршрутизации методов, которые переводят в недопустимые имена переменных JavaScript, используйте обозначение в скобках. Например, app [‘m-search’] (‘/’, функция . .
Функция app.get () автоматически вызывается для метода HTTP HEAD в дополнение к методу GET, если app.head () не вызывался для пути перед app.get (). .
Метод app.all () не является производным от какого-либо метода HTTP и загружает промежуточное ПО по указанному пути для всех методов HTTP-запроса.

Для получения дополнительной информации см. App.all.
Для получения дополнительной информации о маршрутизации см.

Руководство по маршрутизации..
app.param ([имя], обратный вызов)
Добавьте триггеры обратного вызова к параметрам маршрута, где имя — это имя параметра или их массив, а обратный вызов — это функция обратного вызова. Параметрами функции обратного вызова являются объект запроса, объект ответа, следующее промежуточное программное обеспечение, значение параметра и имя параметра в указанном порядке..
Если name является массивом, триггер обратного вызова регистрируется для каждого объявленного в нем параметра в том порядке, в котором они объявлены.

Кроме того, для каждого объявленного параметра, кроме последнего, вызов next внутри функции обратного вызова будет вызывать обратный вызов для следующего объявленного параметра. Для последнего параметра вызов next вызовет следующее промежуточное ПО на месте для маршрута, обрабатываемого в данный момент, так же, как если бы name было просто строкой.
Например, когда: пользователь присутствует в пути маршрута, вы можете отобразить логику загрузки пользователя, чтобы автоматически предоставить req.user для маршрута, или выполнить проверки ввода параметров.
Функции обратного вызова Param являются локальными для маршрутизатора, на котором они определены. Они не наследуются подключенными приложениями или маршрутизаторами.

Следовательно, обратные вызовы параметров, определенные в приложении, будут запускаться только параметрами маршрута, определенными в маршрутах приложения..
Все обратные вызовы параметров будут вызываться перед любым обработчиком любого маршрута, в котором встречается параметр, и каждый из них будет вызываться только один раз в цикле запрос-ответ, даже если параметр соответствует нескольким маршрутам, как показано в следующих примерах.
На GET / user / 42 выводится следующее:
На GET / user / 42/3 напечатано следующее:
В следующем разделе описывается app.param (обратный вызов), который устарел с v4.11.0.

Поведение метода app.param (name, callback) можно полностью изменить, передав только функцию app.param (). Эта функция представляет собой пользовательскую реализацию поведения app.param (name, callback) — она ​​принимает два параметра и должна возвращать промежуточное ПО.
Первый параметр этой функции — это имя параметра URL, который должен быть захвачен, второй параметр может быть любым объектом JavaScript, который может использоваться для возврата реализации промежуточного программного обеспечения..
Промежуточное программное обеспечение, возвращаемое функцией, определяет поведение того, что происходит при захвате параметра URL.
В этом примере подпись app.param (name, callback) изменяется на app.param (name, accessId).

Вместо того, чтобы принимать имя и обратный вызов, app.param () теперь будет принимать имя и номер.
В этом примере подпись app.param (name, callback) остается прежней, но вместо обратного вызова промежуточного программного обеспечения была определена пользовательская функция проверки типа данных для проверки типа данных идентификатора пользователя..
‘. ’Персонаж не может быть использован для захвата символа в вашем регулярном выражении захвата. Например, вы не можете использовать «/user-.+/» для захвата «users-gami», вместо этого используйте [\\ s \\ S] или [\\ w \\ W] (как в ‘/ user- [ \\ s \\ S] + /» .
app.path ()

Возвращает канонический путь приложения, строку.
Поведение этого метода может стать очень сложным в сложных случаях монтируемых приложений: обычно лучше использовать req.baseUrl, чтобы получить канонический путь приложения.
app.post (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запросы POST на указанный путь с указанными функциями обратного вызова. Для получения дополнительной информации см.

Руководство по маршрутизации..
аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь.

Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см.

Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута.

Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..
Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
пример.

app.put (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запросы PUT на указанный путь с указанными функциями обратного вызова..
аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути.

Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см.

Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.

Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..
Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..

пример.
app.render (просмотр, [местные], обратный вызов)
Возвращает визуализированный HTML-код представления с помощью функции обратного вызова. Он принимает необязательный параметр, который является объектом, содержащим локальные переменные для представления. Это похоже на res.render (), за исключением того, что он не может самостоятельно отправить обработанное представление клиенту.

Думайте о app.render () как о служебной функции для генерации отображаемых строк вида. Внутренне res.render () использует app.render () для визуализации представлений.
Кэш локальной переменной зарезервирован для включения кэша представления.

Установите значение true, если вы хотите кэшировать представление во время разработки; кеширование вида включено в производство по умолчанию.
app.route (путь)
Возвращает экземпляр одного маршрута, который затем можно использовать для обработки глаголов HTTP с помощью дополнительного промежуточного программного обеспечения. Используйте app.route (), чтобы избежать дублирования имен маршрутов (и, следовательно, ошибок опечаток).

app.set (имя, значение)
Назначает имя настройки для значения. Вы можете хранить любое значение, которое хотите, но определенные имена могут использоваться для настройки поведения сервера. Эти специальные имена перечислены в таблице настроек приложения.
Вызов app.set (‘foo’, true) для логического свойства аналогичен вызову app.enable (‘foo’).

Аналогично, вызов app.set (‘foo’, false) для логического свойства аналогичен вызову app.disable (‘foo’). .
Получить значение параметра с помощью app.get () .
Настройки приложения.
В следующей таблице перечислены параметры приложения.
Обратите внимание, что подпрограммы будут:

Не наследовать значения параметров, которые имеют значение по умолчанию. Вы должны установить значение в подпрограмме. Унаследуйте значение настроек без значения по умолчанию; это явно указано в таблице ниже.
Исключения: Под-приложения будут наследовать значение доверенного прокси, даже если оно имеет значение по умолчанию (для обратной совместимости); Подпрограммы не будут наследовать значение кеша представления в производственной среде (когда NODE_ENV — «производственная»).
Тип свойства Описание По умолчанию.

чувствительная к регистру маршрутизация.
Включить регистр чувствительности. При включении «/ Foo» и «/ foo» являются разными маршрутами.

Когда отключено, "/ Foo" и "/ foo" обрабатываются одинаково.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)

Режим String Environment. Обязательно установите «производство» в производственной среде; см. лучшие практики производства: производительность и надежность.
process.env.NODE_ENV (переменная окружения NODE_ENV) или «разработка», если NODE_ENV не установлен.
Установите заголовок ответа ETag. Для возможных значений смотрите таблицу опций etag.

имя обратного вызова jsonp.
String Указывает имя обратного вызова JSONP по умолчанию.
Включите экранирование ответов JSON от API res.json, res.jsonp и res.send.

Это будет экранировать символы> и & как экранирующие последовательности Unicode в JSON. Цель этого — помочь в смягчении определенных типов постоянных XSS-атак, когда клиенты анализируют ответы для HTML..
ПРИМЕЧАНИЕ.

Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Varied Аргумент ‘replacer’, используемый `JSON.stringify`.
ПРИМЕЧАНИЕ.

Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Varied Аргумент ‘space’, используемый `JSON.stringify`.

Обычно это число пробелов, используемых для отступа предварительно проверенного JSON.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Отключите синтаксический анализ запроса, задав для него значение false, или настройте синтаксический анализатор запросов на использование «простого» или «расширенного» или пользовательской функции анализа строки запроса..

Простой синтаксический анализатор запросов основан на собственном парсере запросов Node, querystring.
Расширенный анализатор запросов основан на qs.
Пользовательская функция синтаксического анализа строки запроса получит полную строку запроса и должна вернуть объект ключей запроса и их значений..
Включить строгую маршрутизацию.

При включении маршрутизатор обрабатывает «/ foo» и «/ foo /» как разные. В противном случае маршрутизатор обрабатывает "/ foo" и "/ foo /" как одно и то же.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)

Number Число частей узла, разделенных точками, которые необходимо удалить для доступа к поддомену. 2.
Указывает, что приложение находится за фронтальным прокси-сервером и использует заголовки X-Forwarded- * для определения соединения и IP-адреса клиента. ПРИМЕЧАНИЕ.

Заголовки X-Forwarded- * легко подделываются, а обнаруженные IP-адреса ненадежны..
При включении Express пытается определить IP-адрес клиента, подключенного через фронтальный прокси-сервер или серию прокси-серверов. Свойство `req.ips` содержит массив IP-адресов, через которые подключен клиент. Чтобы включить его, используйте значения, описанные в таблице параметров доверенного прокси.

Настройка `trust proxy` реализована с использованием пакета proxy-addr. Для получения дополнительной информации см. Его документацию.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра, даже если оно имеет значение по умолчанию.

String or Array Каталог или массив каталогов для представлений приложения. Если массив, представления ищутся в порядке их появления в массиве.
Включает кэширование компиляции шаблона представления.
ПРИМЕЧАНИЕ.

Подпрограммы не будут наследовать значение этого параметра в производственной среде (когда `NODE_ENV` =" производственная ").
правда в производстве, иначе не определено.
String Расширение движка по умолчанию, используемое, если оно опущено.
ПРИМЕЧАНИЕ.

Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Boolean Включает HTTP-заголовок «X-Powered-By: Express».
Параметры для настройки «доверенный прокси».
Читайте Экспресс за прокси для получения дополнительной информации.

Тип Значение Булево.
Если true, IP-адрес клиента понимается как самая левая запись в заголовке X-Forwarded- *.
Если значение равно false, приложение считается лицом к Интернету, а IP-адрес клиента определяется на основе req.connection.remoteAddress. Это значение по умолчанию.

String String, содержащий значения, разделенные запятыми Массив строк.
IP-адрес, подсеть или массив IP-адресов и подсети для доверия. Предварительно настроенные имена подсетей:
loopback — 127.0.0.1/8, :: 1/128 linklocal — 169.254.0.0/16, fe80 :: / 10 uniquelocal — 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00 :: / 7.
Установите IP-адреса любым из следующих способов:

Укажите одну подсеть:
Укажите подсеть и адрес:
Укажите несколько подсетей как CSV:
Укажите несколько подсетей в виде массива:

Если указано, IP-адреса или подсети исключаются из процесса определения адреса, а ненадежный IP-адрес, ближайший к серверу приложений, определяется как IP-адрес клиента..
Доверьтесь n-му прыжку с фронтального прокси-сервера в качестве клиента.
Индивидуальная реализация доверия. Используйте это, только если вы знаете, что делаете.
Варианты настройки `etag`.

ПРИМЕЧАНИЕ. Эти настройки применяются только к динамическим файлам, а не к статическим файлам. Промежуточное программное обеспечение express.static игнорирует эти настройки.

Функциональность ETag реализована с использованием пакета etag. Для получения дополнительной информации см. Его документацию.
Тип Значение Булево.

Экспресс 4 отзывы Форекс экспресс

true включает слабый ETag. Это значение по умолчанию. false отключает ETag вообще.
String Если «сильный», включает сильный ETag. Если «слабый», включает слабый ETag. функция.

Реализация пользовательских функций ETag. Используйте это, только если вы знаете, что делаете.
app.use ([путь,] обратный вызов [, обратный вызов.])
Монтирует указанную функцию промежуточного программного обеспечения или функции по указанному пути: функция промежуточного программного обеспечения выполняется, когда база запрошенного пути совпадает с путем .
аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь.

Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения.

Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Описание.
Маршрут будет совпадать с любым путем, который следует по его пути, немедленно с помощью «/». Например: app.use (‘/ apple’,.) Будет соответствовать «/ apple», «/ apple / images», «/ apple / images / news» и т. Д..
Поскольку путь по умолчанию равен «/», промежуточное ПО, смонтированное без пути, будет выполняться для каждого запроса к приложению.

Например, эта функция промежуточного программного обеспечения будет выполняться для каждого запроса к приложению:
НОТА.
Не наследовать значения параметров, которые имеют значение по умолчанию. Вы должны установить значение в подпрограмме. Унаследуйте значение настроек без значения по умолчанию.

Функции промежуточного ПО выполняются последовательно, поэтому важен порядок включения промежуточного ПО..
Промежуточное программное обеспечение для обработки ошибок.
Промежуточное программное обеспечение для обработки ошибок всегда принимает четыре аргумента.

4.x API.
экспресс ()
Создает приложение Express.

Функция express () — это функция верхнего уровня, экспортируемая модулем express..
методы.
express.json ([параметры])

Это промежуточное ПО доступно в Express v4.16.0 и выше.
Это встроенная функция промежуточного программного обеспечения в Express. Он анализирует входящие запросы с полезными нагрузками JSON и основан на body-parser.
Возвращает промежуточное программное обеспечение, которое анализирует только JSON и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает любую кодировку Unicode тела и поддерживает автоматическое наложение кодировок gzip и deflate..

Новый объект тела, содержащий проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (то есть req.body) или пустого объекта (), если не было тела для анализа, Content-Type не был найден или произошла ошибка.
Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.foo.toString () может завершиться с ошибкой несколькими способами, например, foo может отсутствовать или не быть строкой, а toString не может быть функцией, а вместо этого строкой или другим пользовательским вводом.
В следующей таблице описаны свойства объекта необязательных опций.
Свойство Описание Тип Default inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются.

Boolean true limit Управляет максимальным размером тела запроса. Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа. Смешанный "100kb" reviver Опция reviver передается непосредственно в JSON.parse в качестве второго аргумента. Вы можете найти больше информации об этом аргументе в документации MDN о JSON.parse.

Функция null strict Включает или отключает прием только массивов и объектов; когда отключено, примет что-нибудь JSON.parse принимает. Boolean true type Используется для определения типа носителя, который будет анализировать промежуточное ПО. Эта опция может быть строкой, массивом строк или функцией. Если это не функция, опция type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, json), тип mime (например, application / json) или тип mime с подстановочным знаком (например, * / *). или * / JSON). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение.

Смешанный «application / json» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — кодировка запроса. Разбор может быть прерван путем выдачи ошибки. Функция не определена.
express.raw ([параметры])
Это промежуточное ПО доступно в Express v4.17.0 и выше.

Это встроенная функция промежуточного программного обеспечения в Express. Он анализирует полезные нагрузки входящих запросов в буфер и основан на body-parser.
Возвращает промежуточное ПО, которое анализирует все тела как Буфер и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает любую кодировку Unicode тела и поддерживает автоматическое наложение кодировок gzip и deflate..

Новый буфер тела, содержащий проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (т. Е. Req.body) или пустой объект (), если не было тела для анализа, Content-Type не был найден или произошла ошибка.
Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.toString () может завершиться ошибкой несколькими способами, например, наложение нескольких парсеров req.body может быть из другого парсера. Перед вызовом методов буфера рекомендуется проверить, что req.body является буфером..

В следующей таблице описаны свойства объекта необязательных опций.
Свойство Описание Тип Default inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются. Boolean true limit Управляет максимальным размером тела запроса.

Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа. Смешанный тип «100 КБ» Используется для определения типа носителя, который будет анализировать промежуточное программное обеспечение. Эта опция может быть строкой, массивом строк или функцией.

Если это не функция, опция type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, bin), тип mime (например, application / octet-stream) или тип mime с подстановочным знаком (например, * / * или приложение / *). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение. Смешанный «application / octet-stream» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — кодировка запроса. Разбор может быть прерван путем выдачи ошибки.

Функция не определена.
express.Router ([параметры])
Создает новый объект маршрутизатора.
Необязательный параметр options указывает поведение маршрутизатора.

Свойство Описание По умолчанию Доступность caseSensitive Включить чувствительность к регистру. По умолчанию отключено, обрабатывая «/ Foo» и «/ foo» одинаково. mergeParams Сохраните значения req.params от родительского маршрутизатора. Если родительский и дочерний элементы имеют конфликтующие имена параметров, значение дочернего элемента имеет приоритет. false 4.5.0+ strict Включить строгую маршрутизацию. По умолчанию отключено, «/ foo» и «/ foo /» обрабатываются маршрутизатором одинаково.
Вы можете добавить промежуточное программное обеспечение и маршруты HTTP-метода (такие как get, put, post и т. Д.) К маршрутизатору, как приложение.

Для получения дополнительной информации см. Маршрутизатор.
express.static (root, [options])
Это встроенная функция промежуточного программного обеспечения в Express.

Он обслуживает статические файлы и основан на статических файлах..
ПРИМЕЧАНИЕ. Для достижения наилучших результатов используйте кэш обратного прокси-сервера для повышения производительности обслуживания статических ресурсов..
Корневой аргумент указывает корневой каталог для обслуживания статических ресурсов.

Функция определяет файл для обслуживания, комбинируя req.url с предоставленным корневым каталогом. Когда файл не найден, вместо отправки ответа 404 он вместо этого вызывает next () для перехода к следующему промежуточному программному обеспечению, что позволяет создавать стеки и выполнять откат.
В следующей таблице описаны свойства объекта параметров. Смотрите также пример ниже.

Свойство Описание Тип Точечные файлы по умолчанию Определяет, как обрабатываются точечные файлы (файлы или каталоги, начинающиеся с точки «.»)..
Смотрите дотфайлы ниже. Строка «игнорировать» etag Включить или отключить генерацию etag.
ПРИМЕЧАНИЕ: express.static всегда отправляет слабые ETag. Boolean true extensions Устанавливает запасные варианты расширения файла: если файл не найден, найдите файлы с указанными расширениями и обслужите первое найденное.

Пример: [‘html’, ‘htm’]. Смешанное ложное падение Пусть клиентские ошибки переходят как необработанные запросы, в противном случае переадресация ошибки клиента.
Смотрите описание ниже. Boolean true immutable Включение или отключение директивы immutable в заголовке ответа Cache-Control.

Если включено, параметр maxAge также должен быть указан для включения кэширования. Директива immutable не позволит поддерживаемым клиентам делать условные запросы в течение срока действия параметра maxAge, чтобы проверить, изменился ли файл. Boolean false index Отправляет указанный файл индекса каталога. Установите в false, чтобы отключить индексацию каталога.

Смешанный «index.html» lastModified Установите заголовок Last-Modified на дату последнего изменения файла в ОС. Boolean true maxAge Установите свойство max-age заголовка Cache-Control в миллисекундах или строку в формате ms. Номер 0 перенаправить Перенаправить на конечный «/», когда путь является каталогом. Boolean true setHeaders Функция для настройки заголовков HTTP для обслуживания с файлом.

Смотрите setHeaders ниже. функция.
точечные файлы.
Возможные значения для этой опции:
«Allow» — нет специального режима для файлов точек «Deny» — отклонить запрос для точечного файла, ответить 403, затем вызвать next (). «Игнорировать» — действовать так, как будто точечный файл не существует, ответить 404, затем вызвать next () .
ПРИМЕЧАНИЕ: со значением по умолчанию он не будет игнорировать файлы в каталоге, который начинается с точки.

провалиться.
Когда этот параметр имеет значение true, клиентские ошибки, такие как неверный запрос или запрос к несуществующему файлу, заставят это промежуточное ПО просто вызывать next (), чтобы вызвать следующее промежуточное ПО в стеке. Если ложь, эти ошибки (даже 404 с) будут вызывать следующее (ошибаться) .
Установите для этого параметра значение true, чтобы можно было сопоставить несколько физических каталогов с одним и тем же веб-адресом или для маршрутов для заполнения несуществующих файлов..

Используйте false, если вы смонтировали это промежуточное ПО по пути, предназначенному для строго одного каталога файловой системы, что позволяет закорачивать 404 с меньшими издержками. Это промежуточное ПО также ответит на все методы.
setHeaders.

Для этого параметра укажите функцию для установки пользовательских заголовков ответа. Изменения в заголовках должны происходить синхронно.
Сигнатура функции:
res, объект ответа. путь, путь к файлу, который отправляется. stat, объект stat файла, который отправляется.

Пример express.static.
Вот пример использования функции промежуточного программного обеспечения express.static со сложным объектом параметров:
express.text ([параметры])
Это промежуточное ПО доступно в Express v4.17.0 и выше.
Это встроенная функция промежуточного программного обеспечения в Express.

Он анализирует полезные нагрузки входящих запросов в строку и основан на body-parser.
Возвращает промежуточное ПО, которое анализирует все тела как строку и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает любую кодировку Unicode тела и поддерживает автоматическое наложение кодировок gzip и deflate..
Новая строка тела, содержащая проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (то есть req.body) или пустого объекта (), если не было тела для анализа, Content-Type не был найден или произошла ошибка.

Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.trim () может завершиться ошибкой несколькими способами, например, наложение нескольких парсеров req.body может быть из другого парсера. Рекомендуется проверить, что req.body — строка перед вызовом строковых методов..
В следующей таблице описаны свойства объекта необязательных опций.

Свойство Описание Тип Default defaultCharset Укажите набор символов по умолчанию для текстового содержимого, если кодировка не указана в заголовке Content-Type запроса. Строка "utf-8" inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются. Boolean true limit Управляет максимальным размером тела запроса. Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа. Смешанный тип «100 КБ» Используется для определения типа носителя, который будет анализировать промежуточное программное обеспечение.

Эта опция может быть строкой, массивом строк или функцией. Если это не функция, параметр type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, txt), тип MIME (например, text / plain) или тип MIME с подстановочным знаком (например, * / *). или текст / *). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение. Смешанный «text / plain» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — кодировка запроса. Разбор может быть прерван путем выдачи ошибки.

Функция не определена.
express.urlencoded ([параметры])
Это промежуточное ПО доступно в Express v4.16.0 и выше.
Это встроенная функция промежуточного программного обеспечения в Express. Он анализирует входящие запросы с полезной нагрузкой urlencoded и основан на body-parser.

Возвращает промежуточное программное обеспечение, которое анализирует только тела с урлен-кодом и просматривает только те запросы, в которых заголовок Content-Type соответствует параметру type. Этот синтаксический анализатор принимает только кодировку тела UTF-8 и поддерживает автоматическое наложение кодировок gzip и deflate..
Новый объект тела, содержащий проанализированные данные, заполняется в объекте запроса после промежуточного программного обеспечения (т.е. req.body) или пустого объекта (), если не было тела для анализа, Content-Type не был найден или произошла ошибка. , Этот объект будет содержать пары ключ-значение, где значение может быть строкой или массивом (если для параметра extended установлено значение false), или для любого типа (если для параметра extended установлено значение true)..

Поскольку форма req.body основана на контролируемых пользователем входных данных, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.body.foo.toString () может завершиться с ошибкой несколькими способами, например, foo может отсутствовать или не быть строкой, а toString не может быть функцией, а вместо этого строкой или другим пользовательским вводом.
В следующей таблице описаны свойства объекта необязательных опций.
Свойство Описание Тип По умолчанию расширенный Этот параметр позволяет выбирать между синтаксическим анализом данных в кодировке URL с библиотекой строк запроса (при значении false) или библиотекой qs (при значении true). «Расширенный» синтаксис позволяет кодировать расширенные объекты и массивы в формат URL-кодирования, что позволяет использовать JSON-подобный интерфейс с кодированием URL. Для получения дополнительной информации, пожалуйста, смотрите библиотеку qs.

Boolean true inflate Включает или отключает обработку спущенных (сжатых) тел; когда отключено, спущенные тела отклоняются. Boolean true limit Управляет максимальным размером тела запроса. Если это число, то значение указывает количество байтов; если это строка, значение передается в библиотеку байтов для анализа.

Смешанный "100kb" параметрLimit Этот параметр управляет максимальным количеством параметров, разрешенных в данных в кодировке URL. Если запрос содержит больше параметров, чем это значение, возникнет ошибка. Тип Number 1000 Используется для определения типа носителя, который будет анализировать промежуточное программное обеспечение.

Эта опция может быть строкой, массивом строк или функцией. Если это не функция, параметр type передается непосредственно в библиотеку type-is, и это может быть имя расширения (например, urlencoded), тип MIME (например, application / x-www-form-urlencoded) или тип MIME с подстановочный знак (например, * / x-www-form-urlencoded). Если функция, опция типа вызывается как fn (req), и запрос анализируется, если он возвращает истинное значение. Смешанный «application / x-www-form-urlencoded» verify Эта опция, если она указана, вызывается как verify (req, res, buf, encoding), где buf — это буфер необработанного тела запроса, а encoding — это кодировка запрос. Разбор может быть прерван путем выдачи ошибки.

Функция не определена.
заявка.
Объект приложения условно обозначает приложение Express.

Создайте его, вызвав функцию верхнего уровня express (), экспортированную модулем Express:
Объект приложения имеет методы для.
Маршрутизация HTTP-запросов; см., например, app.METHOD и app.param.

Настройка промежуточного программного обеспечения; см. app.route. Рендеринг представлений HTML; см. app.render. Регистрация шаблонного движка; см. app.engine.

Он также имеет настройки (свойства), которые влияют на поведение приложения; Для получения дополнительной информации см. Настройки приложения..
Объект приложения Express можно ссылаться из объекта запроса и объекта ответа как req.app и res.app соответственно.
свойства.

app.locals.
Объект app.locals имеет свойства, которые являются локальными переменными в приложении.
После установки значения свойств app.locals сохраняются в течение всего жизненного цикла приложения, в отличие от свойств res.locals, которые действительны только в течение срока действия запроса..
Вы можете получить доступ к локальным переменным в шаблонах, отображаемых в приложении.

Это полезно для предоставления вспомогательных функций для шаблонов, а также для данных уровня приложения. Локальные переменные доступны в промежуточном программном обеспечении через req.app.locals (см. Req.app)
app.mountpath.
Свойство app.mountpath содержит один или несколько шаблонов пути, по которым было смонтировано под-приложение..

Под-приложение — это экземпляр Express, который может использоваться для обработки запроса к маршруту..
Это похоже на свойство baseUrl объекта req, за исключением того, что req.baseUrl возвращает сопоставленный путь URL-адреса вместо сопоставленных шаблонов..
Если вложенное приложение смонтировано на нескольких шаблонах пути, app.mountpath возвращает список шаблонов, на которых оно смонтировано, как показано в следующем примере..

Мероприятия.
app.on (‘mount’, callback (parent))
Событие монтирования запускается во вложенном приложении, когда оно монтируется в родительском приложении. Родительское приложение передается в функцию обратного вызова..

НОТА.
Не наследовать значения параметров, которые имеют значение по умолчанию. Вы должны установить значение в подпрограмме. Унаследуйте значение настроек без значения по умолчанию.
методы.

app.all (путь, обратный вызов [, обратный вызов.])
Этот метод похож на стандартные методы app.METHOD (), за исключением того, что он соответствует всем HTTP-глаголам.
аргументы.

Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного.

Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми).

Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Примеры.
Следующий запрос выполняется для запросов к / secret, используя GET, POST, PUT, DELETE или любой другой метод HTTP-запроса:
Метод app.all () полезен для отображения «глобальной» логики для определенных префиксов пути или произвольных совпадений.

Например, если вы поместите следующее в начало всех других определений маршрутов, это требует, чтобы все маршруты с этого момента требовали аутентификации и автоматически загружали пользователя. Имейте в виду, что эти обратные вызовы не должны действовать как конечные точки: loadUser может выполнить задачу, а затем вызвать next (), чтобы продолжить сопоставление последующих маршрутов..
Или эквивалент:
Другим примером является «глобальная» функциональность из белого списка. Пример похож на приведенный выше, но он ограничивает только пути, начинающиеся с «/ api»:
app.delete (путь, обратный вызов [, обратный вызов.])

Направляет HTTP-запросы DELETE на указанный путь с указанными функциями обратного вызова. Для получения дополнительной информации см. Руководство по маршрутизации..

аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного.

Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения.

Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..
Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..

пример.
app.disable (имя)
Устанавливает логическое имя параметра в значение false, где имя является одним из свойств из таблицы настроек приложения. Вызов app.set (‘foo’, false) для логического свойства аналогичен вызову app.disable (‘foo’) .
app.disabled (имя)
Возвращает true, если логическое имя параметра отключено (false), где name — это одно из свойств из таблицы настроек приложения.

app.enable (имя)
Устанавливает логическое имя параметра в значение true, где имя — это одно из свойств из таблицы параметров приложения. Вызов app.set (‘foo’, true) для логического свойства аналогичен вызову app.enable (‘foo’) .
app.enabled (имя)
Возвращает true, если имя параметра включено (true), где name является одним из свойств из таблицы настроек приложения.
app.engine (ext, callback)

Регистрирует данный обратный вызов механизма шаблонов как ext .
По умолчанию Express потребует () механизм, основанный на расширении файла. Например, если вы попытаетесь визуализировать файл «foo.pug», Express автоматически вызывает следующее и кэширует require () при последующих вызовах для повышения производительности..
Используйте этот метод для механизмов, которые не предоставляют .__ express из коробки, или если вы хотите «сопоставить» другое расширение с механизмом шаблонов.
Например, чтобы сопоставить шаблонизатор EJS с файлами «.html»:

В этом случае EJS предоставляет метод .renderFile () с той же сигнатурой, которую ожидает Express: (путь, параметры, обратный вызов), хотя обратите внимание, что он называет этот метод внутренним псевдонимом ejs .__ express, поэтому, если вы используете «.ejs» расширения вам не нужно ничего делать.
Некоторые движки шаблонов не следуют этому соглашению. Библиотека consolidate.js отображает механизмы шаблонов Node в соответствии с этим соглашением, поэтому они без проблем работают с Express.

app.get (имя)
Возвращает значение параметра имени приложения, где имя — это одна из строк в таблице настроек приложения. Например:
app.get (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запросы GET на указанный путь с указанными функциями обратного вызова..
аргументы.

Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям.

Массив комбинаций любого из вышеперечисленного. Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения.

Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Для получения дополнительной информации см. Руководство по маршрутизации..
пример.

app.listen (путь, [обратный вызов])
Запускает сокет UNIX и прослушивает соединения по заданному пути. Этот метод идентичен http.Server.listen () Node.
app.listen ([port [, host [, backlog]]] [, callback])

Связывает и прослушивает соединения на указанном хосте и порте. Этот метод идентичен http.Server.listen () Node.
Если порт опущен или равен 0, операционная система назначит произвольный неиспользуемый порт, что полезно в таких случаях, как автоматизированные задачи (тесты и т. Д.).
Приложение, возвращаемое функцией express (), фактически является функцией JavaScript, разработанной для передачи на HTTP-серверы Node в качестве обратного вызова для обработки запросов.

Это упрощает предоставление версий вашего приложения как HTTP, так и HTTPS с одной и той же базой кода, поскольку приложение не наследует их (это просто обратный вызов):
Метод app.listen () возвращает объект http.Server и (для HTTP) является вспомогательным методом для следующего:
ПРИМЕЧАНИЕ.

Все формы метода Node http.Server.listen () фактически поддерживаются..
app.METHOD (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запрос, где METHOD — это HTTP-метод запроса, такой как GET, PUT, POST и т. Д., В нижнем регистре. Таким образом, фактическими методами являются app.get (), app.post (), app.put () и так далее.

См. Способы маршрутизации ниже для полного списка.
аргументы.

Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см.

Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения.

Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Методы маршрутизации.
Express поддерживает следующие методы маршрутизации, соответствующие методам HTTP с такими же именами:
оформить заказ удалить удалить получить блокировку головы слияние mkactivity mkcol переместить m-поиск параметры уведомлений патч очистить сообщение поставить отчет поиск подписаться трассировка разблокировать отписаться.

Документация API содержит явные записи только для самых популярных методов HTTP app.get (), app.post (), app.put () и app.delete (). Однако другие методы, перечисленные выше, работают точно так же.
Для маршрутизации методов, которые переводят в недопустимые имена переменных JavaScript, используйте обозначение в скобках. Например, app [‘m-search’] (‘/’, функция . .
Функция app.get () автоматически вызывается для метода HTTP HEAD в дополнение к методу GET, если app.head () не вызывался для пути перед app.get (). .
Метод app.all () не является производным от какого-либо метода HTTP и загружает промежуточное ПО по указанному пути для всех методов HTTP-запроса.

Для получения дополнительной информации см. App.all.
Для получения дополнительной информации о маршрутизации см.

Руководство по маршрутизации..
app.param ([имя], обратный вызов)
Добавьте триггеры обратного вызова к параметрам маршрута, где имя — это имя параметра или их массив, а обратный вызов — это функция обратного вызова. Параметрами функции обратного вызова являются объект запроса, объект ответа, следующее промежуточное программное обеспечение, значение параметра и имя параметра в указанном порядке..
Если name является массивом, триггер обратного вызова регистрируется для каждого объявленного в нем параметра в том порядке, в котором они объявлены.

Кроме того, для каждого объявленного параметра, кроме последнего, вызов next внутри функции обратного вызова будет вызывать обратный вызов для следующего объявленного параметра. Для последнего параметра вызов next вызовет следующее промежуточное ПО на месте для маршрута, обрабатываемого в данный момент, так же, как если бы name было просто строкой.
Например, когда: пользователь присутствует в пути маршрута, вы можете отобразить логику загрузки пользователя, чтобы автоматически предоставить req.user для маршрута, или выполнить проверки ввода параметров.
Функции обратного вызова Param являются локальными для маршрутизатора, на котором они определены. Они не наследуются подключенными приложениями или маршрутизаторами.

Следовательно, обратные вызовы параметров, определенные в приложении, будут запускаться только параметрами маршрута, определенными в маршрутах приложения..
Все обратные вызовы параметров будут вызываться перед любым обработчиком любого маршрута, в котором встречается параметр, и каждый из них будет вызываться только один раз в цикле запрос-ответ, даже если параметр соответствует нескольким маршрутам, как показано в следующих примерах.
На GET / user / 42 выводится следующее:
На GET / user / 42/3 напечатано следующее:
В следующем разделе описывается app.param (обратный вызов), который устарел с v4.11.0.

Поведение метода app.param (name, callback) можно полностью изменить, передав только функцию app.param (). Эта функция представляет собой пользовательскую реализацию поведения app.param (name, callback) — она ​​принимает два параметра и должна возвращать промежуточное ПО.
Первый параметр этой функции — это имя параметра URL, который должен быть захвачен, второй параметр может быть любым объектом JavaScript, который может использоваться для возврата реализации промежуточного программного обеспечения..
Промежуточное программное обеспечение, возвращаемое функцией, определяет поведение того, что происходит при захвате параметра URL.
В этом примере подпись app.param (name, callback) изменяется на app.param (name, accessId).

Вместо того, чтобы принимать имя и обратный вызов, app.param () теперь будет принимать имя и номер.
В этом примере подпись app.param (name, callback) остается прежней, но вместо обратного вызова промежуточного программного обеспечения была определена пользовательская функция проверки типа данных для проверки типа данных идентификатора пользователя..
‘. ’Персонаж не может быть использован для захвата символа в вашем регулярном выражении захвата. Например, вы не можете использовать «/user-.+/» для захвата «users-gami», вместо этого используйте [\\ s \\ S] или [\\ w \\ W] (как в ‘/ user- [ \\ s \\ S] + /» .
app.path ()

Возвращает канонический путь приложения, строку.
Поведение этого метода может стать очень сложным в сложных случаях монтируемых приложений: обычно лучше использовать req.baseUrl, чтобы получить канонический путь приложения.
app.post (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запросы POST на указанный путь с указанными функциями обратного вызова. Для получения дополнительной информации см.

Руководство по маршрутизации..
аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь.

Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см.

Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута.

Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..
Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
пример.

app.put (путь, обратный вызов [, обратный вызов.])
Направляет HTTP-запросы PUT на указанный путь с указанными функциями обратного вызова..
аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь. Образец пути.

Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см.

Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения. Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.

Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..
Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..

пример.
app.render (просмотр, [местные], обратный вызов)
Возвращает визуализированный HTML-код представления с помощью функции обратного вызова. Он принимает необязательный параметр, который является объектом, содержащим локальные переменные для представления. Это похоже на res.render (), за исключением того, что он не может самостоятельно отправить обработанное представление клиенту.

Думайте о app.render () как о служебной функции для генерации отображаемых строк вида. Внутренне res.render () использует app.render () для визуализации представлений.
Кэш локальной переменной зарезервирован для включения кэша представления.

Установите значение true, если вы хотите кэшировать представление во время разработки; кеширование вида включено в производство по умолчанию.
app.route (путь)
Возвращает экземпляр одного маршрута, который затем можно использовать для обработки глаголов HTTP с помощью дополнительного промежуточного программного обеспечения. Используйте app.route (), чтобы избежать дублирования имен маршрутов (и, следовательно, ошибок опечаток).

app.set (имя, значение)
Назначает имя настройки для значения. Вы можете хранить любое значение, которое хотите, но определенные имена могут использоваться для настройки поведения сервера. Эти специальные имена перечислены в таблице настроек приложения.
Вызов app.set (‘foo’, true) для логического свойства аналогичен вызову app.enable (‘foo’).

Аналогично, вызов app.set (‘foo’, false) для логического свойства аналогичен вызову app.disable (‘foo’). .
Получить значение параметра с помощью app.get () .
Настройки приложения.
В следующей таблице перечислены параметры приложения.
Обратите внимание, что подпрограммы будут:

Не наследовать значения параметров, которые имеют значение по умолчанию. Вы должны установить значение в подпрограмме. Унаследуйте значение настроек без значения по умолчанию; это явно указано в таблице ниже.
Исключения: Под-приложения будут наследовать значение доверенного прокси, даже если оно имеет значение по умолчанию (для обратной совместимости); Подпрограммы не будут наследовать значение кеша представления в производственной среде (когда NODE_ENV — «производственная»).
Тип свойства Описание По умолчанию.

чувствительная к регистру маршрутизация.
Включить регистр чувствительности. При включении «/ Foo» и «/ foo» являются разными маршрутами.

Когда отключено, "/ Foo" и "/ foo" обрабатываются одинаково.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)

Режим String Environment. Обязательно установите «производство» в производственной среде; см. лучшие практики производства: производительность и надежность.
process.env.NODE_ENV (переменная окружения NODE_ENV) или «разработка», если NODE_ENV не установлен.
Установите заголовок ответа ETag. Для возможных значений смотрите таблицу опций etag.

имя обратного вызова jsonp.
String Указывает имя обратного вызова JSONP по умолчанию.
Включите экранирование ответов JSON от API res.json, res.jsonp и res.send.

Это будет экранировать символы> и & как экранирующие последовательности Unicode в JSON. Цель этого — помочь в смягчении определенных типов постоянных XSS-атак, когда клиенты анализируют ответы для HTML..
ПРИМЕЧАНИЕ.

Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Varied Аргумент ‘replacer’, используемый `JSON.stringify`.
ПРИМЕЧАНИЕ.

Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Varied Аргумент ‘space’, используемый `JSON.stringify`.

Обычно это число пробелов, используемых для отступа предварительно проверенного JSON.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Отключите синтаксический анализ запроса, задав для него значение false, или настройте синтаксический анализатор запросов на использование «простого» или «расширенного» или пользовательской функции анализа строки запроса..

Простой синтаксический анализатор запросов основан на собственном парсере запросов Node, querystring.
Расширенный анализатор запросов основан на qs.
Пользовательская функция синтаксического анализа строки запроса получит полную строку запроса и должна вернуть объект ключей запроса и их значений..
Включить строгую маршрутизацию.

При включении маршрутизатор обрабатывает «/ foo» и «/ foo /» как разные. В противном случае маршрутизатор обрабатывает "/ foo" и "/ foo /" как одно и то же.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)

Number Число частей узла, разделенных точками, которые необходимо удалить для доступа к поддомену. 2.
Указывает, что приложение находится за фронтальным прокси-сервером и использует заголовки X-Forwarded- * для определения соединения и IP-адреса клиента. ПРИМЕЧАНИЕ.

Заголовки X-Forwarded- * легко подделываются, а обнаруженные IP-адреса ненадежны..
При включении Express пытается определить IP-адрес клиента, подключенного через фронтальный прокси-сервер или серию прокси-серверов. Свойство `req.ips` содержит массив IP-адресов, через которые подключен клиент. Чтобы включить его, используйте значения, описанные в таблице параметров доверенного прокси.

Настройка `trust proxy` реализована с использованием пакета proxy-addr. Для получения дополнительной информации см. Его документацию.
ПРИМЕЧАНИЕ. Под-приложения будут наследовать значение этого параметра, даже если оно имеет значение по умолчанию.

String or Array Каталог или массив каталогов для представлений приложения. Если массив, представления ищутся в порядке их появления в массиве.
Включает кэширование компиляции шаблона представления.
ПРИМЕЧАНИЕ.

Подпрограммы не будут наследовать значение этого параметра в производственной среде (когда `NODE_ENV` =" производственная ").
правда в производстве, иначе не определено.
String Расширение движка по умолчанию, используемое, если оно опущено.
ПРИМЕЧАНИЕ.

Под-приложения будут наследовать значение этого параметра..
Н / Д (не определено)
Boolean Включает HTTP-заголовок «X-Powered-By: Express».
Параметры для настройки «доверенный прокси».
Читайте Экспресс за прокси для получения дополнительной информации.

Тип Значение Булево.
Если true, IP-адрес клиента понимается как самая левая запись в заголовке X-Forwarded- *.
Если значение равно false, приложение считается лицом к Интернету, а IP-адрес клиента определяется на основе req.connection.remoteAddress. Это значение по умолчанию.

String String, содержащий значения, разделенные запятыми Массив строк.
IP-адрес, подсеть или массив IP-адресов и подсети для доверия. Предварительно настроенные имена подсетей:
loopback — 127.0.0.1/8, :: 1/128 linklocal — 169.254.0.0/16, fe80 :: / 10 uniquelocal — 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00 :: / 7.
Установите IP-адреса любым из следующих способов:

Укажите одну подсеть:
Укажите подсеть и адрес:
Укажите несколько подсетей как CSV:
Укажите несколько подсетей в виде массива:

Если указано, IP-адреса или подсети исключаются из процесса определения адреса, а ненадежный IP-адрес, ближайший к серверу приложений, определяется как IP-адрес клиента..
Доверьтесь n-му прыжку с фронтального прокси-сервера в качестве клиента.
Индивидуальная реализация доверия. Используйте это, только если вы знаете, что делаете.
Варианты настройки `etag`.

ПРИМЕЧАНИЕ. Эти настройки применяются только к динамическим файлам, а не к статическим файлам. Промежуточное программное обеспечение express.static игнорирует эти настройки.

Функциональность ETag реализована с использованием пакета etag. Для получения дополнительной информации см. Его документацию.
Тип Значение Булево.

true включает слабый ETag. Это значение по умолчанию. false отключает ETag вообще.
String Если «сильный», включает сильный ETag. Если «слабый», включает слабый ETag. функция.

Реализация пользовательских функций ETag. Используйте это, только если вы знаете, что делаете.
app.use ([путь,] обратный вызов [, обратный вызов.])
Монтирует указанную функцию промежуточного программного обеспечения или функции по указанному пути: функция промежуточного программного обеспечения выполняется, когда база запрошенного пути совпадает с путем .
аргументы.
Аргумент Описание Путь по умолчанию Путь, для которого вызывается функция промежуточного программного обеспечения; может быть любым из: Строка, представляющая путь.

Образец пути. Шаблон регулярного выражения для соответствия путям. Массив комбинаций любого из вышеперечисленного. Для примеров, см. Path examples. обратный вызов ‘/’ (корневой путь); может быть: функция промежуточного программного обеспечения.

Ряд промежуточных функций (разделенных запятыми). Массив функций промежуточного программного обеспечения. Сочетание всего вышеперечисленного.
Вы можете предоставить несколько функций обратного вызова, которые ведут себя подобно промежуточному программному обеспечению, за исключением того, что эти обратные вызовы могут вызывать next («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута. Вы можете использовать этот механизм для наложения предварительных условий на маршрут, а затем передать управление последующим маршрутам, если нет причин для продолжения текущего маршрута..

Поскольку маршрутизатор и приложение реализуют интерфейс промежуточного программного обеспечения, вы можете использовать их, как и любую другую функцию промежуточного программного обеспечения..
Описание.
Маршрут будет совпадать с любым путем, который следует по его пути, немедленно с помощью «/». Например: app.use (‘/ apple’,.) Будет соответствовать «/ apple», «/ apple / images», «/ apple / images / news» и т. Д..
Поскольку путь по умолчанию равен «/», промежуточное ПО, смонтированное без пути, будет выполняться для каждого запроса к приложению.

Например, эта функция промежуточного программного обеспечения будет выполняться для каждого запроса к приложению:
НОТА.
Не наследовать значения параметров, которые имеют значение по умолчанию. Вы должны установить значение в подпрограмме. Унаследуйте значение настроек без значения по умолчанию.

Функции промежуточного ПО выполняются последовательно, поэтому важен порядок включения промежуточного ПО..
Промежуточное программное обеспечение для обработки ошибок.
Промежуточное программное обеспечение для обработки ошибок всегда принимает четыре аргумента.

Вы должны предоставить четыре аргумента, чтобы идентифицировать его как функцию промежуточного программного обеспечения для обработки ошибок. Даже если вам не нужно использовать следующий объект, вы должны указать его, чтобы сохранить подпись. В противном случае следующий объект будет интерпретирован как обычное промежуточное программное обеспечение и не сможет обрабатывать ошибки. Подробнее об промежуточном программном обеспечении для обработки ошибок см .: Обработка ошибок.
Определите функции промежуточного программного обеспечения для обработки ошибок так же, как и другие функции промежуточного программного обеспечения, за исключением четырех аргументов вместо трех, в частности с сигнатурой (err, req, res, next)):

Примеры путей.
В следующей таблице приведены несколько простых примеров допустимых значений пути для монтирования промежуточного программного обеспечения..
Тип Пример Path Это будет соответствовать путям, начинающимся с `/ abcd`: Path Pattern Это будет соответствовать путям, начинающимся с` / abcd` и `/ abd`: Это будет соответствовать путям, начинающимся с` / abcd`, `/ abbcd`,` / abbbbbcd` и т. д. Это будет соответствовать путям, начинающимся с `/ abcd`,` / abxcd`, `/ abFOOcd`,` / abbArcd` и т. д. Это будет соответствовать путям, начинающимся с `/ ad` и` / abcd`: регулярное выражение Это будет соответствовать путям, начинающимся с `/ abc` и` / xyz`: Array Это будет соответствовать путям, начинающимся с `/ abcd`,` / xyza`, `/ lmn` и` / pqr`:
Примеры функций обратного вызова промежуточного программного обеспечения.
В следующей таблице приведены несколько простых примеров функций промежуточного программного обеспечения, которые можно использовать в качестве аргумента обратного вызова для app.use (), app.METHOD () и app.all ().

Хотя примеры предназначены для app.use (), они также действительны для app.use (), app.METHOD () и app.all () .
Пример использования одного промежуточного программного обеспечения Вы можете определить и смонтировать функцию промежуточного программного обеспечения локально. Маршрутизатор является действительным промежуточным программным обеспечением. Приложение Express является действующим промежуточным ПО. Серия промежуточного программного обеспечения Вы можете указать несколько функций промежуточного программного обеспечения на одном пути монтирования.

Массив Используйте массив для логической группировки промежуточного программного обеспечения. Если вы передаете массив промежуточного программного обеспечения в качестве первого или единственного параметра промежуточного программного обеспечения, вы должны указать путь монтирования. Комбинация Вы можете комбинировать все вышеперечисленные способы монтажа промежуточного программного обеспечения..
Ниже приведены некоторые примеры использования промежуточного программного обеспечения express.static в приложении Express..
Служите статическому контенту для приложения из «публичного» каталога в каталоге приложения:

Смонтируйте промежуточное программное обеспечение в «/ static», чтобы обслуживать статическое содержимое, только если в пути к нему указан префикс «/ static»:
Отключите ведение журнала для запросов статического содержимого, загрузив промежуточное программное обеспечение регистратора после статического промежуточного программного обеспечения:
Служите статическим файлам из нескольких каталогов, но отдавайте приоритет «./public» над другими:
Запрос.

Объект req представляет HTTP-запрос и имеет свойства для строки запроса запроса, параметров, тела, заголовков HTTP и т. Д. В этой документации и по соглашению объект всегда называется req (а HTTP-ответ — res), но его фактическое имя определяется параметрами функции обратного вызова, в которой вы работаете..
Но вы могли бы также иметь:
Объект req является улучшенной версией собственного объекта запроса Node и поддерживает все встроенные поля и методы..
свойства.

В Express 4 файл req.files больше не доступен для объекта req по умолчанию. Чтобы получить доступ к загруженным файлам в объекте req.files, используйте промежуточное программное обеспечение для многоэтапной обработки, такое как busboy, multer, грозный, multiparty, connect-multiparty или pez.
req.app.
Это свойство содержит ссылку на экземпляр приложения Express, использующего промежуточное программное обеспечение..
Если вы следуете шаблону, в котором вы создаете модуль, который просто экспортирует функцию промежуточного программного обеспечения и требует () ее в основном файле, то промежуточное программное обеспечение может получить доступ к экземпляру Express через req.app.

req.baseUrl.
Путь URL, по которому был смонтирован экземпляр маршрутизатора.
Свойство req.baseUrl аналогично свойству mountpath объекта приложения, за исключением того, что app.mountpath возвращает сопоставленные шаблоны пути..

Даже если вы используете шаблон пути или набор шаблонов пути для загрузки маршрутизатора, свойство baseUrl возвращает совпавшую строку, а не шаблон (ы). В следующем примере маршрутизатор greet загружается по двум шаблонам пути.
Когда делается запрос к / greet / jp, req.baseUrl имеет значение «/ greet».

Когда делается запрос к / hello / jp, req.baseUrl имеет значение «/ hello».
req.body.
Содержит пары ключ-значение данных, представленных в теле запроса.

По умолчанию он не определен и заполняется при использовании промежуточного программного обеспечения для разбора тела, такого как express.json () или express.urlencoded () .
В следующем примере показано, как использовать промежуточное ПО для анализа тела для заполнения req.body. .
req.cookies.
При использовании промежуточного программного обеспечения анализатора cookie это свойство является объектом, который содержит файлы cookie, отправленные по запросу. Если запрос не содержит куки, по умолчанию он .
Если cookie был подписан, вы должны использовать req.signedCookies.
Для получения дополнительной информации, проблем или проблем, смотрите cookie-parser.
req.fresh.

Когда ответ все еще «свежий» в клиентском кеше, возвращается true, в противном случае возвращается false, чтобы указать, что кеш клиента теперь устарел и полный ответ должен быть отправлен.
Когда клиент отправляет заголовок запроса Cache-Control: no-cache, чтобы указать сквозной запрос на перезагрузку, этот модуль возвращает false, чтобы сделать обработку этих запросов прозрачной.
Более подробную информацию о том, как работает проверка кэша, можно найти в спецификации кэширования HTTP / 1.1..

req.hostname.
Содержит имя хоста, полученное из заголовка HTTP узла.
Если параметр доверенного прокси-сервера не оценивается как false, вместо этого это свойство получит значение из поля заголовка X-Forwarded-Host. Этот заголовок может быть установлен клиентом или прокси.
Если в запросе более одного заголовка X-Forwarded-Host, используется значение первого заголовка.

Это включает в себя один заголовок с разделенными запятыми значениями, в котором используется первое значение.
До Express v4.17.0 X-Forwarded-Host не мог содержать несколько значений или присутствовать более одного раза.
req.ip.
Содержит удаленный IP-адрес запроса.
Когда параметр доверенного прокси-сервера не оценивается как ложный, значение этого свойства выводится из самой левой записи в заголовке X-Forwarded-For.

Этот заголовок может быть установлен клиентом или прокси.
req.ips.
Если параметр доверенного прокси-сервера не имеет значения false, это свойство содержит массив IP-адресов, указанных в заголовке запроса X-Forwarded-For.

В противном случае он содержит пустой массив. Этот заголовок может быть установлен клиентом или прокси.
Например, если X-Forwarded-For является клиентом, proxy1, proxy2, req.ips будет ["client", "proxy1", "proxy2"], где proxy2 — самый дальний нисходящий поток.
req.method.
Содержит строку, соответствующую методу HTTP запроса: GET, POST, PUT и т. Д..

req.originalUrl.
req.url не является собственным свойством Express, оно наследуется от http-модуля Node.
Это свойство очень похоже на req.url; однако он сохраняет исходный URL-адрес запроса, что позволяет вам свободно переписывать req.url для внутренней маршрутизации. Например, функция «mount» в app.use () перепишет req.url, чтобы лишить точку монтирования.

В функции промежуточного программного обеспечения req.originalUrl представляет собой комбинацию req.baseUrl и req.path, как показано в следующем примере.
req.params.
Это свойство представляет собой объект, содержащий свойства, сопоставленные с именованным маршрутом «параметры». Например, если у вас есть имя маршрута / пользователя /:, тогда свойство «имя» доступно как req.params.name. Этот объект по умолчанию .
При использовании регулярного выражения для определения маршрута группы захвата предоставляются в массиве с использованием req.params [n], где n — это n-я группа захвата.

Это правило применяется к безымянным групповым совпадениям со строковыми маршрутами, такими как / file / *:
Если вам нужно внести изменения в ключ в req.params, используйте обработчик app.param. Изменения применяются только к параметрам, уже определенным в пути маршрута..

Любые изменения, внесенные в объект req.params в промежуточном программном обеспечении или обработчике маршрута, будут сброшены.
ПРИМЕЧАНИЕ: Express автоматически декодирует значения в req.params (используя decodeURIComponent).
req.path.

Содержит часть пути URL запроса.
При вызове из промежуточного программного обеспечения точка монтирования не включается в req.path. Смотрите app.use () для более подробной информации..

req.protocol.
Содержит строку протокола запроса: http или (для запросов TLS) https .
Когда параметр доверенного прокси-сервера не оценивается как ложный, это свойство будет использовать значение поля заголовка X-Forwarded-Proto, если оно присутствует. Этот заголовок может быть установлен клиентом или прокси.
req.query.
Это свойство является объектом, содержащим свойство для каждого параметра строки запроса в маршруте.

Когда анализатор запросов отключен, это пустой объект, в противном случае это результат настроенного анализатора запросов.
Поскольку форма req.query основана на вводе пользователем, все свойства и значения в этом объекте не заслуживают доверия и должны быть проверены перед доверием. Например, req.query.foo.toString () может завершиться с ошибкой несколькими способами, например, foo может отсутствовать или не быть строкой, а toString не может быть функцией, а вместо этого строкой или другим пользовательским вводом.
req.route.
Содержит текущий согласованный маршрут, строку.

Например:
Пример вывода из предыдущего фрагмента:
req.secure.
Логическое свойство, которое имеет значение true, если установлено соединение TLS.

Эквивалентно:
req.signedCookies.
При использовании промежуточного программного обеспечения cookie-анализатора это свойство содержит подписанные файлы cookie, отправленные по запросу, без знака и готовые к использованию. Подписанные куки находятся в другом объекте, чтобы показать намерения разработчика; в противном случае вредоносная атака может быть применена к значениям req.cookie (которые легко подделать).

Обратите внимание, что подписание куки не делает его «скрытым» или зашифрованным; но просто предотвращает фальсификацию (потому что секрет, используемый для подписи, является личным).
Если подписанные файлы cookie не отправляются, свойство по умолчанию .
Для получения дополнительной информации, проблем или проблем, смотрите cookie-parser.
req.stale.
Указывает, является ли запрос «устаревшим» и является ли он противоположным req.fresh. Для получения дополнительной информации см.

Req.fresh..
req.subdomains.
Массив поддоменов в доменном имени запроса.

Смещение субдомена свойства приложения, которое по умолчанию равно 2, используется для определения начала сегментов субдомена. Чтобы изменить это поведение, измените его значение с помощью app.set.
req.xhr.
Логическое свойство, которое имеет значение true, если в поле заголовка X-Requested-With запроса указано «XMLHttpRequest», что указывает на то, что запрос был выполнен клиентской библиотекой, такой как jQuery..
методы.

req.accepts (типов)
Проверяет, являются ли указанные типы контента приемлемыми, на основании поля заголовка HTTP запроса Accept. Метод возвращает наилучшее совпадение или, если ни один из указанных типов содержимого не является приемлемым, возвращает ложное значение (в этом случае приложение должно ответить 406 «Недопустимо»).
Значением типа может быть одна строка типа MIME (например, «application / json»), имя расширения, например «json», список с разделителями-запятыми или массив.

Для списка или массива метод возвращает лучшее совпадение (если есть).
Для получения дополнительной информации, или если у вас есть проблемы или проблемы, см. Принимает.

req.acceptsCharsets (charset [,.])
Возвращает первый принятый набор символов из указанных наборов символов на основе поля заголовка HTTP Accept-Charset запроса. Если ни один из указанных наборов символов не принят, возвращает false .
Для получения дополнительной информации, или если у вас есть проблемы или проблемы, см. Принимает.
req.acceptsEncodings (encoding [,.])

Возвращает первую принятую кодировку указанных кодировок, основываясь на поле заголовка HTTP Accept-Encoding запроса. Если ни одна из указанных кодировок не принята, возвращает false .
Для получения дополнительной информации, или если у вас есть проблемы или проблемы, см. Принимает.
req.acceptsLanguages ​​(lang [,.])
Возвращает первый принятый язык указанных языков на основе поля заголовка HTTP запроса Accept-Language.

Если ни один из указанных языков не принят, возвращает false .
Для получения дополнительной информации, или если у вас есть проблемы или проблемы, см. Принимает.
req.get (поле)
Возвращает указанное поле заголовка HTTP-запроса (без учета регистра). Поля Referrer и Referer являются взаимозаменяемыми.

Псевдоним как req.header (поле) .
req.is (тип)
Возвращает соответствующий тип содержимого, если поле заголовка HTTP «Content-Type» входящего запроса соответствует типу MIME, указанному параметром type. Если у запроса нет тела, возвращается ноль.

В противном случае возвращает false.
Для получения дополнительной информации, или если у вас есть проблемы или проблемы, см. Type-is.
req.param (name [, defaultValue])
Устаревшее.

Используйте req.params, req.body или req.query, в зависимости от обстоятельств.
Возвращает значение имени параметра при его наличии.
Поиск выполняется в следующем порядке:
При желании вы можете указать defaultValue, чтобы установить значение по умолчанию, если параметр не найден ни в одном из объектов запроса..

Прямой доступ к req.body, req.params и req.query должен быть предпочтительным для ясности — если вы действительно не принимаете входные данные от каждого объекта.
Промежуточное программное обеспечение для анализа тела должно быть загружено, чтобы req.param () работал предсказуемо. Обратитесь к req.body за подробностями.
req.range (размер [, параметры])

Анализатор заголовка диапазона.
Параметр size — это максимальный размер ресурса..
Параметр options — это объект, который может иметь следующие свойства.
Тип свойства Описание комбинировать Boolean Укажите, следует ли объединять перекрывающиеся и смежные диапазоны, по умолчанию false. Когда true, диапазоны будут объединены и возвращены, как если бы они были указаны таким образом в заголовке.

Будет возвращен массив диапазонов или отрицательные числа, указывающие на ошибку разбора.
-2 сигнализирует о неправильно сформированной строке заголовка -1 сигнализирует о неудовлетворительном диапазоне.
отклик.

Объект res представляет собой HTTP-ответ, который приложение Express отправляет при получении HTTP-запроса..
В этой документации и по соглашению объект всегда называется res (а HTTP-запрос — req), но его фактическое имя определяется параметрами функции обратного вызова, в которой вы работаете..
Но вы могли бы также иметь:

Объект res является улучшенной версией собственного объекта ответа Node и поддерживает все встроенные поля и методы..
свойства.
res.app.
Это свойство содержит ссылку на экземпляр приложения Express, использующего промежуточное программное обеспечение..
res.app идентичен свойству req.app в объекте запроса.

res.headersSent.
Логическое свойство, указывающее, отправляло ли приложение заголовки HTTP для ответа..
res.locals.
Объект, содержащий локальные переменные ответа, ограниченные областью запроса и, следовательно, доступные только для представлений, представленных в течение этого цикла запрос / ответ (если есть). В противном случае это свойство идентично app.locals.

Это свойство полезно для предоставления информации уровня запроса, такой как имя пути запроса, аутентифицированный пользователь, настройки пользователя и т. Д..
методы.
res.append (field [, value])
res.append () поддерживается Express v4.11.0+
Добавляет указанное значение в поле заголовка ответа HTTP.

Если заголовок еще не установлен, он создает заголовок с указанным значением. Параметр значения может быть строкой или массивом.
Примечание: вызов res.set () после res.append () сбросит ранее установленное значение заголовка.

res.attachment ([имя файла])
Устанавливает в поле заголовка Content-Disposition ответа HTTP значение «attachment». Если задано имя файла, то он устанавливает Content-Type на основе имени расширения с помощью res.type () и устанавливает параметр «filename =» Content-Disposition.
res.cookie (имя, значение [, параметры])
Устанавливает имя файла cookie в значение.

Параметр value может быть строкой или объектом, преобразованным в JSON.
Параметр options — это объект, который может иметь следующие свойства.
Тип свойства Описание domain String Имя домена для файла cookie. По умолчанию используется доменное имя приложения.

Функция кодирования Синхронная функция, используемая для кодирования значений cookie. По умолчанию используется encodeURIComponent. Дата истечения срока действия Дата истечения срока действия куки в GMT. Если не указан или установлен в 0, создает cookie сеанса. httpOnly Boolean Отмечает, что файл cookie доступен только веб-серверу. maxAge Number Удобная опция для установки времени истечения относительно текущего времени в миллисекундах. path String Путь для файла cookie. По умолчанию «/». secure Boolean Отмечает cookie-файл, который будет использоваться только с HTTPS. подписанный логический Указывает, должен ли файл cookie быть подписанным. sameSite Логическое или строковое значение атрибута Set-Cookie «SameSite».

Более подробная информация на https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00#section-4.1.1..
Все, что делает res.cookie () — это устанавливает HTTP-заголовок Set-Cookie с предоставленными параметрами. Любая опция, не указанная по умолчанию, соответствует значению, указанному в RFC 6265.
Вы можете установить несколько файлов cookie в одном ответе, вызывая res.cookie несколько раз, например:
Опция кодирования позволяет вам выбрать функцию, используемую для кодирования значения cookie.

Не поддерживает асинхронные функции.
Пример использования: вам нужно установить файл cookie для всего домена для другого сайта в вашей организации. Этот другой сайт (не находящийся под вашим административным контролем) не использует значения cookie в кодировке URI.
Опция maxAge — это удобная опция для установки «expires» относительно текущего времени в миллисекундах. Следующее эквивалентно второму примеру выше.

Вы можете передать объект в качестве параметра значения; затем он сериализуется как JSON и анализируется промежуточным программным обеспечением bodyParser ().
При использовании промежуточного программного обеспечения cookie-анализатора этот метод также поддерживает подписанные файлы cookie. Просто включите подписанную опцию, установленную в true. Затем res.cookie () будет использовать секрет, переданный cookieParser (secret), чтобы подписать значение.

Позже вы можете получить доступ к этому значению через объект req.signedCookie.
res.clearCookie (имя [, параметры])
Удаляет куки, указанные по имени. Для получения подробной информации об объекте параметров смотрите res.cookie ().
Веб-браузеры и другие совместимые клиенты будут очищать cookie, только если указанные параметры идентичны параметрам, заданным для res.cookie (), за исключением expires и maxAge. .
res.download (путь [, имя файла] [, параметры] [, fn])

Опциональный аргумент опций поддерживается Express v4.16.0 и выше.
Передает файл по пути как «вложение». Как правило, браузеры предлагают пользователю загрузить файл. По умолчанию параметр «filename =» заголовка Content-Disposition — это путь (обычно он отображается в диалоговом окне браузера).

Экспресс 4 отзывы Форекс экспресс

Переопределите это значение по умолчанию с параметром имени файла.
Когда происходит ошибка или передача завершена, метод вызывает дополнительную функцию обратного вызова fn. Этот метод использует res.sendFile () для передачи файла.
Необязательный аргумент options проходит через базовый вызов res.sendFile () и принимает те же параметры.

res.end ([данные] [, кодировка])
Завершает процесс ответа. Этот метод на самом деле происходит от ядра Node, а именно от метода response.end () http.ServerResponse..
Используйте для быстрого завершения ответа без каких-либо данных.

Если вам нужно ответить данными, вместо этого используйте такие методы, как res.send () и res.json ().
res.format (объект)
Выполняет согласование содержимого для заголовка Accept HTTP для объекта запроса, если он присутствует.

Он использует req.accepts () для выбора обработчика для запроса на основе допустимых типов, упорядоченных по их значениям качества. Если заголовок не указан, вызывается первый обратный вызов. Если совпадения не найдены, сервер отвечает 406 «Недопустимо» или вызывает обратный вызов по умолчанию.

Заголовок ответа Content-Type устанавливается при выборе обратного вызова. Однако вы можете изменить это в обратном вызове, используя такие методы, как res.set () или res.type (). .
Следующий пример будет отвечать, когда в поле заголовка Accept задано «application / json» или «* / json» (однако, если это «* / *», то ответ будет «hey»).
В дополнение к канонизированным MIME-типам вы также можете использовать имена расширений, сопоставленные с этими типами, для чуть менее подробной реализации:
res.get (поле)
Возвращает заголовок ответа HTTP, указанный в поле.

В совпадении регистр не учитывается.
res.json ([тело])
Посылает ответ JSON. Этот метод отправляет ответ (с правильным типом содержимого), который является параметром, преобразованным в строку JSON с помощью JSON.stringify ().

Параметр может быть любого типа JSON, включая объект, массив, строку, логическое значение, число или ноль, и вы также можете использовать его для преобразования других значений в JSON..
res.jsonp ([тело])
Отправляет ответ JSON с поддержкой JSONP.

Этот метод идентичен res.json (), за исключением того, что он поддерживает поддержку обратного вызова JSONP.
По умолчанию имя обратного вызова JSONP является просто обратным вызовом. Переопределите это с настройкой имени обратного вызова jsonp.

Ниже приведены некоторые примеры ответов JSONP, использующих один и тот же код:
res.links (ссылки)
Присоединяет ссылки, предоставленные в качестве свойств параметра, для заполнения поля HTTP-заголовка ответа..
Например, следующий вызов:
Дает следующие результаты:
res.location (путь)

Устанавливает HTTP-заголовок Location ответа на указанный параметр пути.
Значение пути «назад» имеет особое значение, оно относится к URL-адресу, указанному в заголовке Referer запроса. Если заголовок Referer не был указан, он ссылается на «/».

После кодирования URL-адреса, если он еще не закодирован, Express передает указанный URL-адрес браузеру в заголовке «Местоположение» без проверки.
Браузеры берут на себя ответственность за получение предполагаемого URL-адреса из текущего URL-адреса или ссылающегося URL-адреса, а также URL-адреса, указанного в заголовке Location; и перенаправить пользователя соответственно.
res.redirect ([статус,] путь)
Перенаправляет на URL-адрес, полученный по указанному пути, с указанным состоянием, положительное целое число, соответствующее коду статуса HTTP. Если не указан, статус по умолчанию «302« Найдено ».

Перенаправления могут быть полным URL-адресом для перенаправления на другой сайт:
Перенаправления могут быть связаны с корнем имени хоста. Например, если приложение находится по адресу http://example.com/admin/post/new, следующее будет перенаправлять на URL http://example.com/admin:
Перенаправления могут быть относительно текущего URL. Например, с http://example.com/blog/admin/ (обратите внимание на косую черту), следующее будет перенаправлять на URL http://example.com/blog/admin/post/new .
Перенаправление на post / new с http://example.com/blog/admin (без косой черты), перенаправит на http://example.com/blog/post/new .
Если вы обнаружили, что приведенное выше поведение сбивает с толку, представьте, что сегменты пути представляют собой каталоги (с завершающими косыми чертами) и файлы, и это начнет иметь смысл.

Относительные пути также возможны. Если бы вы были на http://example.com/admin/post/new, следующее перенаправило бы на http://example.com/admin/post:
Обратное перенаправление перенаправляет запрос обратно к рефереру, по умолчанию / когда реферер отсутствует.
res.render (view [, localals] [, callback])
Визуализирует представление и отправляет визуализированную строку HTML клиенту.

Необязательные параметры:
locals, объект, свойства которого определяют локальные переменные для представления. обратный вызов, функция обратного вызова. Если указан, метод возвращает возможную ошибку и отображаемую строку, но не выполняет автоматический ответ. Когда происходит ошибка, метод вызывает next (err) изнутри.
Аргумент представления — это строка, представляющая собой путь к файлу представления для визуализации. Это может быть абсолютный путь или путь относительно настройки представлений.

Если путь не содержит расширение файла, то параметр механизма просмотра определяет расширение файла. Если путь содержит расширение файла, тогда Express загрузит модуль для указанного механизма шаблонов (через require ()) и отобразит его, используя функцию __express загруженного модуля..
ПРИМЕЧАНИЕ. Аргумент view выполняет операции с файловой системой, такие как чтение файла с диска и оценка модулей Node.js, и поэтому по соображениям безопасности не должен содержать входных данных от конечного пользователя..
Кэширование локальных переменных позволяет кэшировать представления Установите значение true, чтобы кэшировать представление во время разработки; кеширование вида включено в производство по умолчанию.

res.send ([тело])
Отправляет ответ HTTP.
Параметр body может быть объектом Buffer, строкой, объектом или массивом. Например:

Этот метод выполняет много полезных задач для простых не потоковых ответов: например, он автоматически назначает поле заголовка ответа Content-Length HTTP (если не определено ранее) и обеспечивает автоматическую поддержку HEAD и HTTP-обновления свежести кэша..
Когда параметр является объектом Buffer, метод устанавливает поле заголовка ответа Content-Type на «application / octet-stream», если это не было предварительно определено, как показано ниже:
Когда параметр является строкой, метод устанавливает тип содержимого «text / html»:
Если параметром является массив или объект, Express отвечает представлением JSON:
res.sendFile (путь [, параметры] [, fn])
res.sendFile () поддерживается Express v4.8.0 и выше.

Передает файл по указанному пути. Устанавливает поле заголовка HTTP ответа Content-Type на основании расширения имени файла. Если в объекте параметров не задан параметр root, путь должен быть абсолютным путем к файлу.
Этот API предоставляет доступ к данным в работающей файловой системе. Убедитесь, что либо (а) способ, которым аргумент пути был создан в абсолютный путь, является безопасным, если он содержит пользовательский ввод, либо (б) установите в качестве корневого параметра абсолютный путь к каталогу, который будет содержать доступ внутри.

Когда указана корневая опция, аргумент пути может быть относительным путем, включая содержащий … Express проверит, что относительный путь, указанный в качестве пути, будет разрешен в рамках указанного корневого параметра..
В следующей таблице приведены сведения о параметре параметров.
Свойство Описание Доступность по умолчанию maxAge Устанавливает свойство max-age заголовка Cache-Control в миллисекундах или строку в формате ms 0 корневой корневой каталог для относительных имен файлов. lastModified Устанавливает заголовок Last-Modified на дату последнего изменения файла в ОС. Установите false, чтобы отключить его.

Включено 4.9.0+ заголовки Объект, содержащий заголовки HTTP для обслуживания с файлом. Опция dotfiles для обслуживания дотфайлов. Возможные значения: «разрешить», «запретить», «игнорировать». «Ignore» acceptRanges Включить или отключить прием удаленных запросов. true 4.14+ cacheControl Включение или отключение настройки заголовка ответа Cache-Control. true 4.14+ immutable Включение или отключение директивы immutable в заголовке ответа Cache-Control. Если включено, параметр maxAge также должен быть указан для включения кэширования. Директива immutable не позволит поддерживаемым клиентам делать условные запросы в течение срока действия параметра maxAge, чтобы проверить, изменился ли файл. ложно 4.16+

Метод вызывает функцию обратного вызова fn (err), когда передача завершена или когда произошла ошибка. Если указана функция обратного вызова и возникает ошибка, функция обратного вызова должна явно обрабатывать процесс ответа либо путем завершения цикла запрос-ответ, либо путем передачи управления следующему маршруту..
Вот пример использования res.sendFile со всеми его аргументами.
В следующем примере показано использование res.sendFile для предоставления детальной поддержки для обслуживания файлов:
Для получения дополнительной информации, или если у вас есть проблемы или проблемы, см.

Отправить.
res.sendStatus (StatusCode)
Устанавливает HTTP-код ответа в statusCode и отправляет его строковое представление в качестве тела ответа..
Если указан неподдерживаемый код состояния, статус HTTP по-прежнему устанавливается на statusCode, а строковая версия кода отправляется в качестве тела ответа..
Некоторые версии Node.js будут выдавать, если для res.statusCode задан недопустимый код состояния HTTP (вне диапазона от 100 до 599).

Обратитесь к документации сервера HTTP для используемой версии Node.js..
res.set (field [, value])
Устанавливает значение в поле заголовка HTTP ответа. Чтобы установить несколько полей одновременно, передайте объект в качестве параметра.

Псевдоним как res.header (поле [, значение]) .
res.status (код)
Устанавливает статус HTTP для ответа. Это цепочечный псевдоним Node response.statusCode.
res.type (тип)
Устанавливает HTTP-заголовок Content-Type для типа MIME, как определено mime.lookup () для указанного типа.

Если тип содержит символ «/», он устанавливает тип содержимого .
res.vary (поле)
Добавляет поле в заголовок ответа Vary, если его там еще нет.
маршрутизатор.
Объект маршрутизатора является изолированным экземпляром промежуточного программного обеспечения и маршрутов.

Вы можете думать о нем как о «мини-приложении», способном выполнять только функции промежуточного программного обеспечения и маршрутизации. Каждое приложение Express имеет встроенный маршрутизатор приложений.
Маршрутизатор ведет себя как промежуточное ПО, так что вы можете использовать его в качестве аргумента для app.use () или в качестве аргумента для метода use () другого маршрутизатора.
У экспресс-объекта верхнего уровня есть метод Router (), который создает новый объект маршрутизатора.

Создав объект маршрутизатора, вы можете добавить к нему промежуточное программное обеспечение и маршруты методов HTTP (такие как get, put, post и т. Д.), Как приложение. Например:
Затем вы можете использовать маршрутизатор для определенного корневого URL-адреса таким образом, разделяя ваши маршруты на файлы или даже мини-приложения..

методы.
router.all (путь, [обратный вызов,.] обратный вызов)
Этот метод похож на методы router.METHOD (), за исключением того, что он соответствует всем методам HTTP (глаголам).
Этот метод чрезвычайно полезен для отображения «глобальной» логики для определенных префиксов пути или произвольных совпадений. Например, если вы поместили следующий маршрут в начало всех других определений маршрутов, для этого потребовалось бы, чтобы все маршруты с этого момента требовали аутентификации и автоматически загружали пользователя.

Имейте в виду, что эти обратные вызовы не должны действовать как конечные точки; loadUser может выполнить задачу, затем вызвать next (), чтобы продолжить сопоставление последующих маршрутов..
Или эквивалент:
Другим примером этого является «глобальная» функциональность из белого списка. Здесь пример очень похож на предыдущий, но он ограничивает только пути с префиксом «/ api»:
router.METHOD (путь, [обратный вызов,.] обратный вызов)

Методы router.METHOD () предоставляют функциональные возможности маршрутизации в Express, где METHOD является одним из методов HTTP, таких как GET, PUT, POST и т. Д., В нижнем регистре. Таким образом, фактическими методами являются router.get (), router.post (), router.put () и т. Д..
Функция router.get () автоматически вызывается для метода HTTP HEAD в дополнение к методу GET, если router.head () не был вызван для пути до router.get () .
Вы можете предоставить несколько обратных вызовов, и все они обрабатываются одинаково и ведут себя так же, как промежуточное программное обеспечение, за исключением того, что эти обратные вызовы могут вызывать следующий («маршрут»), чтобы обойти оставшиеся обратные вызовы маршрута.

Вы можете использовать этот механизм, чтобы выполнить предварительные условия на маршруте, а затем передать управление последующим маршрутам, когда нет причин для продолжения с соответствующим маршрутом..
Следующий фрагмент иллюстрирует наиболее простое определение маршрута. Express преобразует строки пути в регулярные выражения, используемые внутри для соответствия входящим запросам. Строки запроса не учитываются при выполнении этих совпадений, например, «GET /» будет соответствовать следующему маршруту, как «GET /? Name = tobi».

Вы также можете использовать регулярные выражения — полезно, если у вас очень специфичные ограничения, например, следующее будет соответствовать «GET / commits / 71dbb9c», а также «GET /commits/71dbb9c..4c084f9».
router.param (имя, обратный вызов)
Добавляет триггеры обратного вызова в параметры маршрута, где name — это имя параметра, а callback — функция обратного вызова. Хотя имя технически необязательно, использование этого метода без него не рекомендуется, начиная с Express v4.11.0 (см. Ниже).

Параметры функции обратного вызова:
req, объект запроса. res, объект ответа. далее, указывая следующую функцию промежуточного программного обеспечения. Значение параметра name. Наименование параметра.

В отличие от app.param () router.param () не принимает массив параметров маршрута.
Например, когда: пользователь присутствует в пути маршрута, вы можете отобразить логику загрузки пользователя, чтобы автоматически предоставить req.user для маршрута, или выполнить проверки ввода параметров.
Функции обратного вызова Param являются локальными для маршрутизатора, на котором они определены.

Они не наследуются подключенными приложениями или маршрутизаторами. Следовательно, обратные вызовы параметров, определенные на маршрутизаторе, будут запускаться только параметрами маршрута, определенными на маршрутах маршрутизатора..
Обратный вызов параметров будет вызываться только один раз в цикле запрос-ответ, даже если параметр соответствует нескольким маршрутам, как показано в следующих примерах.

На GET / user / 42 выводится следующее:
В следующем разделе описывается router.param (обратный вызов), который устарел с v4.11.0.
Поведение метода router.param (name, callback) можно полностью изменить, передав только функцию router.param ().

Эта функция представляет собой пользовательскую реализацию поведения router.param (name, callback) — она ​​принимает два параметра и должна возвращать промежуточное ПО.
Первый параметр этой функции — это имя параметра URL, который должен быть захвачен, второй параметр может быть любым объектом JavaScript, который может использоваться для возврата реализации промежуточного программного обеспечения..
Промежуточное программное обеспечение, возвращаемое функцией, определяет поведение того, что происходит при захвате параметра URL.
В этом примере подпись router.param (имя, обратный вызов) изменяется на router.param (name, accessId). Вместо того, чтобы принимать имя и обратный вызов, router.param () теперь будет принимать имя и номер.

В этом примере подпись router.param (name, callback) остается той же самой, но вместо обратного вызова промежуточного программного обеспечения была определена пользовательская функция проверки типа данных для проверки типа данных идентификатора пользователя..
router.route (путь)
Возвращает экземпляр одного маршрута, который затем можно использовать для обработки глаголов HTTP с помощью дополнительного промежуточного программного обеспечения. Используйте router.route (), чтобы избежать дублирования имен маршрутов и, следовательно, ошибок ввода.
Основываясь на приведенном выше примере router.param (), в следующем коде показано, как использовать router.route () для указания различных обработчиков HTTP-методов..

Этот подход повторно использует единственный путь / users /: user_id и добавляет обработчики для различных методов HTTP.
ПРИМЕЧАНИЕ. При использовании router.route () порядок промежуточного программного обеспечения зависит от того, когда создается маршрут, а не от того, какие обработчики методов добавляются в маршрут. Для этого вы можете считать, что обработчики методов принадлежат маршруту, к которому они были добавлены.

router.use ([путь], [функция,.] функция)
Использует указанную функцию или функции промежуточного программного обеспечения с необязательным путем к пути монтирования, который по умолчанию равен «/».
Этот метод похож на app.use (). Простой пример и пример использования описаны ниже.

Смотрите app.use () для получения дополнительной информации.
Промежуточное программное обеспечение подобно трубопроводу: запросы начинаются с первой определенной функции промежуточного программного обеспечения и проходят «вниз» обработки стека промежуточного программного обеспечения для каждого пути, которому они соответствуют..
Путь «монтирования» удален и не виден функции промежуточного программного обеспечения.

Основным эффектом этой функции является то, что смонтированная функция промежуточного программного обеспечения может работать без изменения кода независимо от его пути префикса.
Порядок, в котором вы определяете промежуточное ПО с router.use (), очень важен. Они вызываются последовательно, поэтому порядок определяет приоритет промежуточного программного обеспечения.

Например, обычно регистратор — это самое первое промежуточное программное обеспечение, которое вы используете, чтобы каждый запрос регистрировался.
Теперь предположим, что вы хотите игнорировать запросы на регистрацию статических файлов, но продолжить журналирование маршрутов и промежуточного программного обеспечения, определенного после logger (). Вы бы просто переместили вызов express.static () наверх, прежде чем добавлять промежуточное программное обеспечение регистратора:
Другим примером является обслуживание файлов из нескольких каталогов, отдавая приоритет «./public» над другими:

Метод router.use () также поддерживает именованные параметры, так что ваши точки монтирования для других маршрутизаторов могут получить выгоду от предварительной загрузки с использованием именованных параметров..
ПРИМЕЧАНИЕ. Хотя эти функции промежуточного программного обеспечения добавляются через определенный маршрутизатор, при их запуске определяется путь, к которому они подключены (а не маршрутизатор). Поэтому промежуточное программное обеспечение, добавленное через один маршрутизатор, может работать для других маршрутизаторов, если его маршруты совпадают. Например, этот код показывает два разных маршрутизатора, смонтированных по одному пути:

Даже если промежуточное программное обеспечение для аутентификации было добавлено через authRouter, оно будет работать на маршрутах, определенных openRouter, так как оба маршрутизатора были смонтированы на / users. Чтобы избежать этого, используйте разные пути для каждого маршрутизатора.

Похожие статьи

Оставить комментарий

XHTML: Разрешенные теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>