Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Уеб програмиране / Основи на Cro / Exercises / Втори маршрут
Решение: Втори маршрут
Ето едно възможно решение на задачата.
Код
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)спира сървъра и прекратява реакцията.