%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper,headsepline,footsepline]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
% Funktioniert nicht \usepackage[automark]{scrpage2}%
\usepackage[automark]{scrlayer-scrpage}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

% Single quotes
\usepackage{upquote,textcomp}

%Kopfzeile
\ihead{Node.js}
\chead{}
\ohead{http://kohnlehome.de/js/node-express-cheatsheet.pdf}
%\setheadsepline{0.5pt}

%Fußzeile
%\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Single Quotes
\newcommand\upquote[1]{\textquotesingle#1\textquotesingle}

% Überschrift 
\begin{center}
  \LARGE % Schriftgröße
  \bfseries % Fettdruck
  \sffamily % Serifenlose Schrift
  Node.js: express
\end{center}


\section*{Installation}
\begin{verbatim}
npm i express  
\end{verbatim} 

\section*{HTTP-Server erstellen}
\begin{verbatim}
import express from "express";  

const port = 3000;
const app = express();
app.use(express.json());   
\end{verbatim} 

\section*{HTTP-Server starten}
\begin{verbatim}
app.listen(port, () => {
    console.log(`Listening on port ${port}`);
}); 
\end{verbatim}

\section*{HTTP-Request auswerten (Endpoints)}
\begin{verbatim}
app.get('/contacts/:id', (req, res) => {
    const id = req.params.id;
    ...
}); 

app.post('/contacts', (req, res) => {
    const newContact = req.body;
    ...
}); 

app.delete('/contacts/:id', (req, res) => {
    const id = req.params.id;
    ...
}); 
\end{verbatim}
 
\section*{HTTP-Response senden}
\begin{verbatim}
res.send('Hello World!'); // Content-Type: text/html, 200 OK

res.json({"key":value});  // Content-Type: application/json, 200 OK    

res.status(201);          // 201 Created
res.send('Added contact');
\end{verbatim}
 

\end{document}
