33 lines
976 B
TypeScript
33 lines
976 B
TypeScript
import express, { Express, Request, Response } from "express";
|
|
import { HitCounter } from "./hit-counter";
|
|
|
|
const app: Express = express();
|
|
const PORT: number = 8000;
|
|
const hitCounter = new HitCounter();
|
|
const imageMimeType = hitCounter.getMimeType();
|
|
|
|
app.get("/", (req: Request, res: Response) => {
|
|
hitCounter.increment();
|
|
res.send("Hello dear interlocutor! Your visit has been noted.");
|
|
|
|
});
|
|
|
|
app.get("/hits", async (req: Request, res: Response) => {
|
|
const hits = await hitCounter.getHits();
|
|
res.send(`This site has ${hits} hits!`);
|
|
});
|
|
|
|
app.get("/reset", async (req: Request, res: Response) => {
|
|
await hitCounter.reset();
|
|
res.send("Hit counter has been reset!");
|
|
});
|
|
|
|
app.get("/image", async (req: Request, res: Response) => {
|
|
const image = await hitCounter.render();
|
|
res.setHeader("Content-Type", imageMimeType);
|
|
res.send(image);
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`[server]: Express server started on port ${PORT}`);
|
|
});
|