kill-the-newsletter/src/server.tsx

40 lines
773 B
TypeScript
Raw Normal View History

2020-03-18 04:07:48 +01:00
import express from "express";
import React from "react";
2020-03-18 18:38:09 +01:00
import {
Inbox,
Layout,
Form,
Created,
Feed,
newToken,
2020-03-18 20:21:44 +01:00
feedPath,
renderHtml,
renderXml
2020-03-18 18:38:09 +01:00
} from "./components";
2020-03-18 17:22:18 +01:00
import fs from "fs";
2020-03-18 04:07:48 +01:00
2020-03-19 01:17:55 +01:00
export const webServer = express()
.use(express.static("static"))
.use(express.urlencoded({ extended: true }))
.get("/", (req, res) =>
res.send(
renderHtml(
<Layout>
<Form></Form>
</Layout>
)
2020-03-18 16:12:46 +01:00
)
2020-03-18 05:49:41 +01:00
)
2020-03-19 01:17:55 +01:00
.post("/", (req, res) => {
const inbox: Inbox = { name: req.body.name, token: newToken() };
fs.writeFileSync(feedPath(inbox.token), renderXml(Feed(inbox)));
res.send(
renderHtml(
<Layout>
<Created inbox={inbox}></Created>
</Layout>
)
);
})
.listen(8443);