O que é o app.use no NodeJS/ExpressJS?
const express = require('express') const app = express() // middleware app.use(function (req, res, next) { console.log('middleware 1') next() }) app.get('/', function (req, res) { console.log('requisição') res.send('Requisição!') }) app.listen(3001, function () { console.log('Example app listening on port 3000!') })
- Este middleware será aplicado antes da execução de qualquer rota que vier depois dele;
- Caso não adicionamos o next(), as rotas subsequentes nem serão executadas. Por isso, middleware é uma ótima forma de fazer controle de acesso a rotas.
const express = require('express') const app = express() app.use(function (req, res, next) { console.log('middleware 1') next() }) app.use(function (req, res, next) { console.log('middleware 2') next() }) app.get('/', function (req, res) { console.log('requisição') res.send('Requisição!') }) app.use(function (req, res, next) { res.send('nada encontrado') }) app.get('/url', function (req, res) { console.log('requisição') res.send('Requisição!') }) app.listen(3001, function () { console.log('Example app listening on port 3000!') })
const express = require('express') const app = express() app.use(function (req, res, next) { console.log('middleware 1') next() }) app.use(function (req, res, next) { console.log('middleware 2') next() }) app.get('/', function (req, res) { console.log('requisição') res.send('Requisição!') }) app.use('/admin', function (req, res, next) { console.log('checar se tem permissao') next() }) app.get('/admin', function (req, res) { console.log('requisição admin') res.send('Requisição admin!') }) app.get('/admin/teste', function (req, res) { console.log('requisição admin') res.send('Requisição admin!') }) app.use(function (req, res, next) { res.send('nada encontrado') }) app.get('/url', function (req, res) { console.log('requisição') res.send('Requisição!') }) app.listen(3001, function () { console.log('Example app listening on port 3000!') })