NodeJS / Express: что такое "приложение.использовать"?



на документы для NodeJS express модуль пример кода app.use(...).



что такое use функция и где она определена?

579   10  

10 ответов:

экземпляр объекта приложения создается при создании Экспресс-сервера. Он имеет middleware стек это можно настроить в app.configure()(теперь поддерживается в версии 4.x).

чтобы настроить промежуточное программное обеспечение, вы можете вызвать app.use(<specific_middleware_layer_here>) для каждого слоя промежуточного программного обеспечения, который вы хотите добавить (он может быть общим для всех путей или срабатывать только на определенных путях ваших серверных дескрипторов), и он добавит на ваш Экспресс стек промежуточного ПО. Слои промежуточного программного обеспечения могут быть добавлены один за другим в нескольких вызовах use, или даже все сразу в серии с одной ссылки. Смотрите use документация для более подробной информации.

чтобы дать пример для концептуального понимания Express Middleware, вот что мое приложение middleware stack (app.stack) выглядит как при регистрации моего объекта приложения на консоли как JSON:

stack: 
   [ { route: '', handle: [Function] },
     { route: '', handle: [Function: static] },
     { route: '', handle: [Function: bodyParser] },
     { route: '', handle: [Function: cookieParser] },
     { route: '', handle: [Function: session] },
     { route: '', handle: [Function: methodOverride] },
     { route: '', handle: [Function] },
     { route: '', handle: [Function] } ]

как вы могли бы сделать вывод, Я позвал app.use(express.bodyParser()),app.use(express.cookieParser()) и т. д., которые добавили эти экспресс-слои промежуточного программного обеспечения в стек промежуточного программного обеспечения. Обратите внимание, что маршруты пусты, что означает, что когда я добавил эти слои промежуточного программного обеспечения, я указал, что они запускаются на любом маршруте. Если я добавил пользовательский слой промежуточного программного обеспечения, который срабатывает только на пути /user/:id это будет отражено в виде строки route поле этого объекта слоя промежуточного программного обеспечения в распечатке стека выше.

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

например, добавив bodyParser,вы гарантируете, что ваш сервер обрабатывает входящие запросы через express middleware. Итак,теперь разбор тела входящих запросов является частью процедуры, которую ваше промежуточное программное обеспечение принимает при обработке входящих запросов -- все потому, что вы назвали app.use(bodyParser).

use - Это метод настройки промежуточного программного обеспечения, используемого маршрутами объекта Express HTTP server. Метод определяется как часть подключиться этот экспресс основан на.

каждого приложение.use (middleware) вызывается каждый раз, когда запрос отправляется на сервер.

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

например: если вы используете приложение.используйте () в indexRouter.Яш , вот так:

//indexRouter.js

var adsRouter = require('./adsRouter.js');

module.exports = function(app) {
    app.use('/ads', adsRouter);
}

В приведенном выше коде приложения.использовать() устанавливает путь на '/объявления в adsRouter.js.

теперь в adsRouter.js

// adsRouter.js

var router = require('express').Router();
var controllerIndex = require('../controller/index');
router.post('/show', controllerIndex.ads.showAd);
module.exports = router;

в adsRouter.js, путь будет таким для рекламы- '/ads / show', а затем он будет работать в соответствии с controllerIndex.реклама.продемонстрировали().

приложение.использовать([путь],обратного вызова,[вызов]) : мы можем добавить обратный вызов на то же самое.

app.use('/test', function(req, res, next) {

  // write your callback code here.

    });

приложение.использовать() работает так:

  1. событие запроса триггера на экземпляре http-сервера узла.
  2. экспресс выполняет некоторые из своих внутренних манипуляций с объектом req.
  3. Это когда экспресс начинает делать то, что вы указали в приложении.используйте

что очень удобно.

и только тогда express будет делать остальную часть вещей, таких как маршрутизация.

приложение.используйте () действует как промежуточное программное обеспечение в экспресс-приложениях. В отличие от приложение.получить() и приложение.post () или так, вы можете использовать приложение.используйте () без указания URL запроса. В таком случае, что он делает, он выполняется каждый раз, независимо от того, какой URL был поражен.

в экспресс, если мы импорт экспресс из "экспресс" и использовать приложение = экспресс(); тогда приложение, имеющее всю функциональность express

Если мы используем приложение.используйте ()

с любой функцией модуля / промежуточного программного обеспечения для использования во всем экспресс-проекте

Middleware-это общий термин для программного обеспечения, которое служит для "склеивания", поэтому приложение.use-это метод настройки промежуточного программного обеспечения, например: для анализа и обработки тела запроса: приложение.использовать(bodyParser.в кодировке url({ расширенный: правда })); приложение.использовать(bodyParser.формат JSON()); есть много промежуточных программ, которые вы можете использовать в своем экспресс-приложении просто прочитайте документ : http://expressjs.com/en/guide/using-middleware.html

приложение.use применяет указанное промежуточное программное обеспечение к основному стеку промежуточного программного обеспечения приложения. При присоединении промежуточного программного обеспечения к основному стеку приложений порядок прикрепления имеет значение; если вы присоединяете промежуточное программное обеспечение A до промежуточного программного обеспечения B, промежуточное программное обеспечение A всегда будет выполняться первым. Можно указать путь, для которого применяется определенное промежуточное программное обеспечение. В приведенном ниже примере "hello world "всегда будет регистрироваться перед" happy holidays."

const express = require('express')
const app = express()

app.use(function(req, res, next) {
  console.log('hello world')
  next()
})

app.use(function(req, res, next) {
  console.log('happy holidays')
  next()
})

привязка промежуточного программного обеспечения уровня приложения к экземпляру объекта приложения с помощью приложения.используйте () и приложение.Функции METHOD (), где METHOD-это HTTP-метод запроса, обрабатываемого функцией промежуточного программного обеспечения (например, GET, PUT или POST) в нижнем регистре.

Comments

    Ничего не найдено.