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

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

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

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

javascriptlet arr = ['a', 'b', 'c'];

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

javascriptlet arr = ['a', 'b', 'c'];

app.get('/test/:num/', function(req, res) {
  res.send(arr[req.params.num]);
});
Задание 1

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

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

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

Задание 2

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

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

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

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

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

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

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

javascriptapp.get('/prod/:id/:field/', function(req, res) {
  let prod = prods[req.params.id];
  res.send(prod[req.params.field]);
});
Задание 3

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

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

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