ExpressJS - Roteamento
Os frameworks da Web fornecem recursos como páginas HTML, scripts, imagens, etc. em diferentes rotas.
A função a seguir é usada para definir rotas em um aplicativo Express -
app.method (caminho, manipulador)
Este MÉTODO pode ser aplicado a qualquer um dos verbos HTTP - get, set, put, delete. Também existe um método alternativo, que é executado independentemente do tipo de solicitação.
Caminho é a rota na qual a solicitação será executada.
Handler é uma função de retorno de chamada executada quando um tipo de solicitação correspondente é encontrado na rota relevante. Por exemplo,
var express = require('express');
var app = express();
app.get('/hello', function(req, res){
res.send("Hello World!");
});
app.listen(3000);
Se executarmos nosso aplicativo e formos para localhost:3000/hello, o servidor recebe uma solicitação get na rota "/hello", nosso aplicativo Express executa o callback função anexada a esta rota e envia "Hello World!" como a resposta.
Também podemos ter vários métodos diferentes na mesma rota. Por exemplo,
var express = require('express');
var app = express();
app.get('/hello', function(req, res){
res.send("Hello World!");
});
app.post('/hello', function(req, res){
res.send("You just called the post method at '/hello'!\n");
});
app.listen(3000);
Para testar esta solicitação, abra seu terminal e use cURL para executar a seguinte solicitação -
curl -X POST "http://localhost:3000/hello"
Um método especial, all, é fornecido pelo Express para lidar com todos os tipos de métodos http em uma rota específica usando a mesma função. Para usar este método, tente o seguinte.
app.all('/test', function(req, res){
res.send("HTTP method doesn't have any effect on this route!");
});
Este método é geralmente usado para definir middleware, que discutiremos no capítulo sobre middleware.
Roteadores
Definir rotas como acima é muito tedioso de manter. Para separar as rotas de nosso principalindex.js arquivo, vamos usar Express.Router. Crie um novo arquivo chamadothings.js e digite o seguinte nele.
var express = require('express');
var router = express.Router();
router.get('/', function(req, res){
res.send('GET route on things.');
});
router.post('/', function(req, res){
res.send('POST route on things.');
});
//export this router to use in our index.js
module.exports = router;
Agora, para usar este roteador em nosso index.js, digite o seguinte antes de app.listen chamada de função.
var express = require('Express');
var app = express();
var things = require('./things.js');
//both index.js and things.js should be in same directory
app.use('/things', things);
app.listen(3000);
o app.use chamada de função na rota '/things' anexa o thingsroteador com esta rota. Agora, quaisquer solicitações que nosso aplicativo receba em '/ things', serão tratadas por nosso roteador things.js. o'/'rota em things.js é na verdade um sub-roteamento de '/ things'. Visite localhost: 3000 / things / e você verá a seguinte saída.
Os roteadores são muito úteis para separar questões e manter partes relevantes de nosso código juntas. Eles ajudam na construção de código sustentável. Você deve definir suas rotas relacionadas a uma entidade em um único arquivo e incluí-lo usando o método acima em seuindex.js Arquivo.