Ваш регистр пустой строки не является допустимым параметром для поиска в пределах main
.
Создайте маршрут по умолчанию, используя app.get
вместо:
const express = require('express');
const app = express();
const port = 3000;
const hostname = 'localHost';
app.get("/", (req, res) => res.send("Welcome to my assignment"));
app.get('/:main/:sub/:sub2', (req, res) => {
let main = String(req.params.main).toLowerCase();
let sub = String(req.params.sub).toLowerCase();
let sub2 = String(req.params.sub2).toLowerCase();
switch (main) {
case "speak":
{
switch (sub) {
case "pig":
res.send(`The pig says 'Oink'`);
break;
case "cow":
res.send(`The cow says 'Moo'`);
break;
case "dog":
res.send(`The dog says 'Woof Woof!'`);
break;
case "*":
res.send(`sorry no one speaks here!`);
break;
}
}
case "repeat":
{
if (!Number.isNaN(sub2)) {
let str = "";
for (let i = 0; i < sub2; i++) {
str+=sub;
}
res.send(str);
}
break;
}
default:
res.send(`Page not found!`);
break;
break;
}
});
app.listen(port, hostname, () => {
console.log(`server has started`)
});
Редактировать Я также настроил функцию «повтор» для работы.!NaN
всегда true
.Ваш оригинальный код в основном сказал if(sub2 === true)
, чего никогда не будет.Я изменил его, используя условный метод !Number.isNaN
.Затем я конкатенировал строку и вывел ее n
количество раз.