runtime/examples/deno/app.js

75 lines
11 KiB
JavaScript
Raw Normal View History

import { serve } from "https://deno.land/std@0.86.0/http/server.ts";
const server = serve({ hostname: "0.0.0.0", port: 8080 });
console.log(`HTTP webserver running. Access it at: http://localhost:8080/`);
for await (const request of server) {
let bodyContent = `<!DOCTYPE html>
<html>
<head lang=\"cs\">
<meta charset=\"UTF-8\">
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">
<title>Roští.cz</title>
<style>
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #2a303c;
background: #54af46;
}
.header {
text-align: center;
}
pre, .row p {
text-align: left;
}
.container {
width: 800px;
margin: 50px auto;
background: #fff;
padding: 20px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
text-align: center;
}
a {
color: #54af46;
}
.project-domain {
color: #54af46;
}
</style>
</head>
<body>
<div class=\"container\">
<div class=\"header\" role=\"banner\">
<a href=\"https://rosti.cz\"><img src=\"data:image/png;base64,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
</div>
<div class=\"row\">
<div>
<h2>Kde to jsem?</h2>
<h3 class=\"project-domain\"></h3>
<p>Na <a href=\"https://rosti.cz\">Roští.cz</a> a prostředí pro vaši aplikaci je připraveno.</p>
<p>Nyní můžete obsah adresáře <code>/srv/app</code> vymazat a nahradit ho svoji aplikací. Pokud jste u nás poprvé, <a href=\"https://docs.rosti.cz/cs/quickstart/first_app/\" target=\"_blank\">tak pomůže naše dokumentace</a>.</p>
<p>HTTP server vaší aplikace spusťte na portu <code>8080</code>. Na jiném nebude fungovat.</p>
</div>
<p>V případě problémů se prosím obraťte na <a href=\"mailto:podpora@rosti.cz\">technickou podporu</a> nebo na <a href=\"https://docs.rosti.cz/\" target=\"_blank\">dokumentaci</a>.</p>
<p>Tým <a href=\"https://rosti.cz\">Roští.cz</a> | <a href=\"http://twitter.com/rosti_cz\">@rosti_cz</a></p>
</div>
</div>
<script type=\"application/javascript\">
var index, len;
var places = document.getElementsByClassName('project-domain');
var domain = document.domain;
for (index = 0, len = places.length; index < len; ++index) {
places[index].innerHTML = domain;
}
</script>
</body>
</html>`;
request.respond({ status: 200, body: bodyContent });
}