前提・実現したいこと
Node.jsの質問お願いします。
クライアントからサーバーに、json形式のデータをPOSTで送信した際に、
サーバー(Node.js)側でconsole.logで表示する方法を知りたいです。
index.html内の{ "aaa": "bbb" }をnode.js側のconsole.logで表示したいです。
Express等を使わない方法でお願いします。
発生している問題・エラーメッセージ
req.bodyを使うとundefinedになって、
req.onを使うと[object Object]と表示されてしまいます。
該当のソースコード
index.html
html
1<html> 2 3<head> 4 <title>テスト</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6</head> 7 8<body> 9 <button onclick="func()">送信</button> 10</body> 11 12<script lang="javascript"> 13 const xhr = new XMLHttpRequest(); 14 function func() { 15 xhr.open('POST', "/api"); 16 xhr.send({ "aaa": "bbb" }); 17 }; 18</script> 19 20</html>
index.js
javascript
1const http = require('http'); 2const fs = require('fs'); 3 4const server = http.createServer((req, res) => { 5 if (req.url === '/') { 6 fs.readFile('./index.html', (err, data) => { 7 res.writeHead(200, { 'Content-Type': 'text/html' }); 8 res.write(data); 9 res.end(); 10 }); 11 } 12 if (req.url === '/api') { 13 14 // 色々やってみたが分からなかった 15 16 // req.on('data', function (chunk) { 17 // console.log(chunk); 18 // console.log(chunk.toString('UTF-8')); 19 20 // console.log(chunk.toJSON().data.toString('UTF-8')); 21 // }).on('end', function () { 22 23 // }) 24 25 // console.log(req.body); 26 res.end(); 27 28 } 29}); 30server.listen(3000);
回答1件
あなたの回答
tips
プレビュー