Учебники

ExpressJS — Маршрутизация

Веб-фреймворки предоставляют ресурсы, такие как HTML-страницы, скрипты, изображения и т. Д. По разным маршрутам.

Следующая функция используется для определения маршрутов в приложении Express —

app.method (путь, обработчик)

Этот МЕТОД может быть применен к любому из HTTP-глаголов — получить, установить, положить, удалить. Также существует альтернативный метод, который выполняется независимо от типа запроса.

Путь — это маршрут, по которому будет выполняться запрос.

Обработчик — это функция обратного вызова, которая выполняется, когда на соответствующем маршруте найден соответствующий тип запроса. Например,

var express = require('express');
var app = express();

app.get('/hello', function(req, res){
   res.send("Hello World!");
});

app.listen(3000);

Если мы запустим наше приложение и перейдем к localhost: 3000 / hello , сервер получит запрос get по маршруту «/ hello» , наше приложение Express выполнит функцию обратного вызова, прикрепленную к этому маршруту, и отправит «Hello World!» как ответ.

Привет

У нас также может быть несколько разных методов на одном и том же маршруте. Например,

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);

Чтобы проверить этот запрос, откройте свой терминал и используйте cURL для выполнения следующего запроса:

curl -X POST "http://localhost:3000/hello"

Curl запрос

Express предоставляет специальный метод all для обработки всех типов методов http на определенном маршруте с использованием одной и той же функции. Чтобы использовать этот метод, попробуйте следующее.

app.all('/test', function(req, res){
   res.send("HTTP method doesn't have any effect on this route!");
});

Этот метод обычно используется для определения промежуточного программного обеспечения, которое мы обсудим в главе о промежуточном программном обеспечении.

Маршрутизаторы

Определение маршрутов, как описано выше, очень утомительно. Чтобы отделить маршруты от нашего основного файла index.js , мы будем использовать Express.Router . Создайте новый файл things.js и введите в него следующее.

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;

Теперь, чтобы использовать этот маршрутизатор в нашем index.js , введите следующее перед вызовом функции app.listen .

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);

Вызов функции app.use на маршруте «/ things» присоединяет маршрутизатор вещей к этому маршруту. Теперь любые запросы, которые наше приложение получает в «/ things», будут обрабатываться нашим маршрутизатором things.js. Маршрут «/» в things.js на самом деле является подчиненным маршрутом «/ things». Посетите localhost: 3000 / вещи /, и вы увидите следующий вывод.

Маршрутизатор Вещи

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