NodeJS / Express: what is " app.usar"?

nos documentos para o módulo NodeJS express , o código de exemplo tem app.use(...).

Qual é a função use e onde está definida?

Author: nbro, 2012-07-04

10 answers

O objecto da aplicação está instanciado na criação do servidor expresso. Tem um middleware pilha que pode ser personalizado em app.configure()(isto está agora desactualizado na versão 4.x) .

A configuração de seu middleware, você pode invocar app.use(<specific_middleware_layer_here>) para cada camada de middleware que você deseja adicionar (pode ser genérico para todos os caminhos, ou acionado apenas no caminho específico(s) de seu servidor de que trata), e adicione em seu Express middleware pilha. Camadas Middleware podem ser adicionadas uma a uma em várias invocações de use, ou mesmo todas de uma vez em série com uma invocação. Veja use documentação para mais pormenores.

Para dar um exemplo de compreensão conceitual do Middleware expresso, aqui está o que minha pilha de middleware app (app.stack) parece que ao registar o objecto da minha aplicação na consola como 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] } ]
Como podes deduzir, liguei-te.app.use(express.bodyParser()), app.use(express.cookieParser()), etc., que acrescentou estes middleware expresso "camadas" para a pilha de middleware. Observe que as rotas são em branco, o que significa que quando eu adicionei essas camadas middleware eu especificei que elas seriam ativadas em qualquer rota. Se eu adicionasse uma camada de middleware personalizada que só despoletasse no path /user/:id, isso seria reflectido como um texto no campo route desse objecto de camada de middleware na impressão da pilha acima.

cada camada é essencialmente adicionar uma função que lida especificamente com algo para o seu fluxo através do middleware.

Por exemplo, adicionando bodyParser, está a garantir que o seu servidor lida com os pedidos recebidos através do middleware expresso. Então, Agora analisar o corpo dos pedidos recebidos faz parte do procedimento que o seu middleware usa ao lidar com os pedidos recebidos -- tudo porque ligou para app.use(bodyParser).
 263
Author: chinnychinchin, 2017-02-14 00:00:25

use é um método para configurar o middleware usado pelas rotas do Objeto Servidor HTTP Express. O método é definido como parte de Connect em que o Express se baseia.

 38
Author: JohnnyHK, 2014-06-03 03:25:06

Cada aplicação .o use (middleware) é chamado sempre que um pedido é enviado para o servidor.

 17
Author: Eugene Mercer, 2017-04-24 18:37:43

App.use () usado para montar a função middleware ou montar para um caminho especificado,a função middleware é executada quando o caminho de base corresponde.

Por exemplo: se você estiver usando app.use () in indexRouter.js, assim:

//indexRouter.js

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

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

Na aplicação de código acima.use () montar o caminho em '/ads' para adsRouter.js.

Agora em adsRouter.js

// adsRouter.js

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

Em adsRouter.js, o caminho será como este para anúncios- '/ ads / show' , e então ele vai funcionar de acordo com controla o index.anuncio.showAd().

App.uso ([localização],callback, [callback]): podemos adicionar uma chamada no mesmo.

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

  // write your callback code here.

    });
 14
Author: Shubham Verma, 2017-01-23 07:51:22

App.use () funciona assim:

  1. Request event trigered on node http server instance.
  2. expresso faz alguma da sua manipulação interior com objecto req.
  3. é quando o express começa a fazer as coisas que indicou com a aplicação.utilizar
O que é muito simples. E só então express fará o resto das coisas como roteamento.
 4
Author: Anton Stafeyev, 2017-07-17 08:58:32

App.use () atua como um middleware em aplicativos express. Ao contrário de app.get () and app.post () ou assim, você realmente pode usar app.use () sem especificar o URL do pedido. Em tal caso o que ele faz é, ele é executado cada vez que não importa qual URL foi atingido.

 4
Author: Omkar Mote, 2018-05-24 12:23:59

Em Expresso Se nós importar expresso de"express" e usar app = express(); em seguida, app Com todas as funcionalidades do express

Se usarmos a aplicação.use ()

Com qualquer função module/middleware a usar em todo o projecto express

 1
Author: saurabh kumar, 2017-09-10 14:07:29
Middleware é um termo geral para software que serve para "colar juntos" de modo aplicacao.o uso é um método para configurar o middleware, por exemplo: processar e lidar com o corpo de pedido: aplicacao.uso (bodyParser.urlencoded ({extended: true}); aplicacao.uso (bodyParser.json (); existem muitos middlewares que você pode usar em sua aplicação expressa lê o doc. : http://expressjs.com/en/guide/using-middleware.html
 1
Author: user3432221, 2017-11-26 18:53:59

App.o uso aplica o middleware indicado à pilha principal de middleware da aplicação. Ao anexar o middleware à pilha principal de aplicações, a ordem do anexo importa; se anexar o middleware A antes do middleware B, o middleware A irá sempre executar primeiro. Você pode especificar um caminho para o qual um middleware particular é aplicável. No exemplo abaixo, " hello world "será sempre registrado antes de" 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()
})
 1
Author: Rubin bhandari, 2018-05-23 11:42:48

Ligar o middleware de nível de aplicação a uma instância do objecto do aplicativo, usando o aplicativo.use () e app.METHOD () functions, where METHOD is the HTTP method of the request that the middleware function handles (such as GET, PUT, or POST) in lowercase.

 0
Author: Rajeev Kumar Verma, 2017-08-23 11:52:17