# Роутинг и массивы в Express

Пусть у нас есть следующий маршрут, параметром которого передается некоторое число:

`app.get('/test/:num/', function(req, res) { console.log(req.params.num); });`

Пусть у нас также есть массив:

`let arr = ['a', 'b', 'c'];`

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

`let arr = ['a', 'b', 'c']; app.get('/test/:num/', function(req, res) { res.send(arr[req.params.num]); });`

Дан следующий массив:

`let users = ['user1', 'user2', 'user3', 'user4', 'user5'];`

Создайте маршрут, который будет отправлять в браузер запрошенный элемент этого массива.

Модифицируйте предыдущую задачу так, чтобы при запросе несуществующего элемента массива отдавалась `404` страница.

## Массив объектов

Пусть теперь у нас есть следующий массив объектов:

`let prods = [ { name: 'prod1', cost: 1000, }, { name: 'prod2', cost: 2000, }, { name: 'prod3', cost: 3000, }, ];`

Давайте напишем маршрут, выводящий название и цену запрошенного продукта:

`app.get('/prod/:id/', function(req, res) { let prod = prods[req.params.id]; res.send(prod.name + ' ' + prod.cost); });`

Давайте также сделаем маршрут, с помощью которого можно будет запросить определенную характеристику продукта (название или стоимость):

`app.get('/prod/:id/:field/', function(req, res) { let prod = prods[req.params.id]; res.send(prod[req.params.field]); });`

Дан следующий массив объектов:

`let users = [ { name: 'user1', age: 31, }, { name: 'user2', age: 32, }, { name: 'user3', age: 33, }, ];`

Сделайте маршрут, возвращающий одного юзера, и маршрут, возвращающий заданную характеристику юзера.

← →
↑