Пусть у нас есть маршрут, параметром которого будет некоторое число:
app.get('/test/:num/', function(req, res) {
res.send(req.params.num);
});
Давайте разрешим только адреса с числами
от 1
до 9
, а для остальных
адресов отдадим 404
ошибку:
app.get('/test/:num/', function(req, res) {
let num = req.params.num;
if (num >= 1 && num <= 9) {
res.send('your num: ' + num);
} else {
res.status(404).send('not found');
}
});
А теперь давайте проверим, введено число или нет, воспользовавшись регулярным выражением:
app.get('/test/:num/', function(req, res) {
let num = req.params.num;
if (/\d+/.test(num)) {
res.send('your num: ' + num);
} else {
res.status(404).send('not found');
}
});
Сделайте маршрут с некоторым параметром.
Реализуйте проверку параметра на это, что
это дата в формате год-месяц-день.
Верните 404
, если это не так.
Общая 404
ошибка
В приведенном выше коде получится, что если
адрес начинается с /test/
и дальше
не число, то в браузер улетит 404
ошибка. Но в браузер может быть введен и
произвольный урл, не начинающийся с /test/
.
Такие случаи мы должны обработать через app.use
:
app.use(function(req, res) {
res.status(404).send('not found');
});
Полный код будет выглядеть следующим образом:
app.get('/test/:num/', function(req, res) {
let num = req.params.num;
if (/\d+/.test(num)) {
res.send('your num: ' + num);
} else {
res.status(404).send('not found'); // начало с /test/, но потом не число
}
});
app.use(function(req, res) {
res.status(404).send('not found'); // адреса, не начинающиеся с /test/
});