31 lines
2.7 KiB
TypeScript
31 lines
2.7 KiB
TypeScript
import * as Http from "http";
|
|
|
|
export namespace A008Server {
|
|
console.log("Starting server"); // Ausgabe in der Server-Console
|
|
let port: number = Number(process.env.PORT); /* Deklaration der number "port" mit einem Port aus der Umgebungsvariable,
|
|
der als numerisches Objekt abgespeichert werden soll*/
|
|
if (!port) // "Wenn kein Port vergeben wurde...
|
|
port = 8100; // ...verwende den Port 8100"
|
|
|
|
let server: Http.Server = Http.createServer(); // Der Server wird aufgesetzt
|
|
server.addListener("request", handleRequest); // Listener für wenn Serveranfragen reinkommen
|
|
server.addListener("listening", handleListen); // Listener für wenn der Server startet
|
|
server.listen(port); // Achtet auf Anfragen, die durch den Port durchkommen
|
|
|
|
function handleListen(): void { // wird ausgeführt, wenn der Server gestartet wird und eine Abfrage erwartet
|
|
console.log("Listening"); // Ausgabe in der Server-Console
|
|
}
|
|
|
|
function handleRequest(_request: Http.IncomingMessage, _response: Http.ServerResponse): void { // wird ausgeführt, wenn eine Serveranfrage eintrifft
|
|
console.log("https://theoneandgis.herokuapp.com" + `${_request.url}`); // Ausgabe in der Server-Console
|
|
// console.log("-------------");
|
|
// console.log("I hear voices!");
|
|
|
|
_response.setHeader("content-type", "text/html; charset=utf-8"); // Der Datentyp der Antwort wird festgelegt
|
|
_response.setHeader("Access-Control-Allow-Origin", "*"); // erlaubt beliebigen Anfragen aus dem Netz, die Antwort zu lesen
|
|
|
|
_response.write(_request.url); // Die Antwort wird mit einem string (in diesem Fall die URL) beschrieben
|
|
|
|
_response.end(); // deaktiviert den Server bis zur nächsten Anfrage
|
|
}
|
|
} |