diff --git a/form.html b/form.html
new file mode 100644
index 0000000..651883d
--- /dev/null
+++ b/form.html
@@ -0,0 +1,16 @@
+
+
+
+
+ アンケート
+
+
+ どちらが食べたいですか?
+
+
+
diff --git a/index.js b/index.js
index bfd5ba5..f431eab 100644
--- a/index.js
+++ b/index.js
@@ -1,40 +1,48 @@
-'use strict';
-const http = require('node:http');
+'use strict'
+const http = require('node:http')
+const fs = require('node:fs')
const server = http
.createServer((req, res) => {
- const now = new Date();
- console.info(`[${now}] Requested by ${req.socket.remoteAddress}`);
+ const now = new Date()
+ console.info(`[${now}] Requested by ${req.socket.remoteAddress}`)
res.writeHead(200, {
- 'Content-Type': 'text/plain; charset=utf-8'
- });
+ 'Content-Type': 'text/html; charset=utf-8',
+ })
switch (req.method) {
case 'GET':
- res.write(`GET ${req.url}`);
- break;
+ const rs = fs.createReadStream('./form.html')
+ rs.pipe(res)
+ break
case 'POST':
- res.write(`POST ${req.url}`);
- let rawData = '';
+ let rawData = ''
req
- .on('data', chunk => {
- rawData += chunk;
+ .on('data', (chunk) => {
+ rawData += chunk
})
.on('end', () => {
- console.info(`[${now}] Data posted: ${rawData}`);
- });
- break;
+ const answer = new URLSearchParams(rawData)
+ const body = `${answer.get('name')}さんは${answer.get(
+ 'yaki-tofu'
+ )}に投票しました`
+ console.info(`[${now}] ${body}`)
+ res.write(
+ `${body}
`
+ )
+ res.end()
+ })
+ break
default:
- break;
+ break
}
- res.end();
})
- .on('error', e => {
- console.error(`[${new Date()}] Server Error`, e);
+ .on('error', (e) => {
+ console.error(`[${new Date()}] Server Error`, e)
+ })
+ .on('clientError', (e) => {
+ console.error(`[${new Date()}] Client Error`, e)
})
- .on('clientError', e => {
- console.error(`[${new Date()}] Client Error`, e);
- });
-const port = 8000;
+const port = 8000
server.listen(port, () => {
- console.info(`[${new Date()}] Listening on ${port}`);
-});
+ console.info(`[${new Date()}] Listening on ${port}`)
+})