Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Webprogrammeren / Cro 101 / Exercises / Een tweede route
Oplossing: Een tweede route
Hier is een mogelijke oplossing voor de taak.
Code
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;
}
}🦋 Je kunt de broncode vinden in het bestand second-route.raku.
Uitvoer
Goodbye!Opmerkingen
Een
route-blok mag zoveel routes bevatten als je wilt; elkegethandelt één pad af.Cro koppelt het verzoekpad aan de juiste route, dus geven
/helloen/byehun eigen antwoorden.Net als op de theoriepagina keert
.startmeteen terug, dus houdt het afsluitendereact-blok het programma in leven tot je Ctrl-C indrukt —whenever signal(SIGINT)stopt dan de server en beëindigt de reactie.