diff --git a/form.html b/form.html
new file mode 100644
index 0000000..a40547b
--- /dev/null
+++ b/form.html
@@ -0,0 +1,17 @@
+
+
+
+
+ アンケート
+
+
+
+ どちらが食べたいですか?
+
+
+
\ No newline at end of file
diff --git a/index.js b/index.js
index efc57ce..f3fcbd2 100644
--- a/index.js
+++ b/index.js
@@ -1,32 +1,41 @@
'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}`);
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}\n`);
+ const rs = fs.createReadStream('./form.html');
+ rs.pipe(res);
break;
case 'POST':
- res.write(`POST ${req.url}\n`);
let rawData = '';
req
.on('data', chunk => {
rawData += chunk;
})
.on('end', () => {
- console.info(`[${now}] Data posted: ${rawData}`);
+// const decoded = decodeURIComponent(rawData);
+// console.info(`[${now}] 投稿: ${decoded}`);
+ 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;
}
- res.end();
})
.on('error', e => {
console.error(`[${new Date()}] Server Error`, e);
diff --git a/package.json b/package.json
index 661f61f..39f60b9 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,7 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
- "author": "",
- "license": "ISC"
+ "author": "PatrickHarumi ",
+ "license": "ISC",
+ "repository": "git@github.com:PatrickHarumi/node-js-http-3014.git"
}