https://www.udemy.com/course/nodejs-mvc-rest-apis-graphql-deno/
인풋(Input)보다 아웃풋(output)이 중요하다. 비율은 3:7 정도이다.
app.js
const http = require("http");
const routes = require('./routes');
const server = http.createServer(routes);
server.listen(3000);
routes.js
const fs = require("fs");
const requestHandler = (req, res) => {
const url = req.url;
const method = req.method;
if (url === "/") {
res.write("<html>");
res.write("<head><title>Web Page</title></head>");
res.write(
"<body><form action='/message' method='post'><input type='text' name='message'><button>submit</button></form></body>"
);
res.write("</html>");
return res.end();
}
if (url === "/message" && method === "POST") {
const body = [];
req.on("data", (chunk) => {
console.log(chunk);
body.push(chunk);
});
return req.on("end", () => {
const parsedBody = Buffer.concat(body).toString();
const message = parsedBody.split("=")[1];
fs.writeFile("message.txt", message, (err) => {
res.statusCode = 302;
res.setHeader("Location", "/");
return res.end();
});
});
}
res.write("<html>");
res.write("<head><title>Web Page</title></head>");
res.write("<body><h1>Hello World!!</h1></body>");
res.write("</html>");
res.end();
};
module.exports = requestHandler;