Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Веб-програмування / Основи Cro / Вправи / Другий маршрут
Розв’язання: Другий маршрут
Ось одне з можливих розв’язань задачі.
Код
use Cro::HTTP::Router;
use Cro::HTTP::Server;
my $application = route {
get -> 'hello' {
content 'text/plain', 'Hello from Cro!';
}
get -> 'bye' {
content 'text/plain', 'Goodbye!';
}
}
my $server = Cro::HTTP::Server.new(
:host('127.0.0.1'),
:port(8080),
:application($application),
);
$server.start;
say 'Listening on http://127.0.0.1:8080 — press Ctrl-C to stop';
react {
whenever signal(SIGINT) {
$server.stop;
done;
}
}🦋 Знайдіть програму у файлі second-route.raku.
Вивід
Goodbye!Коментарі
Блок
routeможе містити скільки завгодно маршрутів; коженgetобробляє один шлях.Cro зіставляє шлях запиту з потрібним маршрутом, тож
/helloта/byeповертають кожен свою відповідь.Як і на теоретичній сторінці,
.startповертається негайно, тож завершальний блокreactтримає програму живою, аж поки ви не натиснете Ctrl-C, — тодіwhenever signal(SIGINT)спиняє сервер і завершує реакцію.