やりたいこと
Client側のJavaScriptのJsonデータをNode.jsのサーバに渡します。
実装
Client側の実装
Client側の実装は以下のようになります。
urlは送信先のURLです。必要に応じて変更してください。
objは送信するJSON(Object)です。
const Http = new XMLHttpRequest();
const url='http://127.0.0.1/test';///送信先
Http.open("POST", url);////////POSTでオープン。GETではContentsを送信できません。
let obj = {number:20, aaa:"ああああ"};////送信するJSON
Http.send(JSON.stringify(obj));////JSONをStringに変換して送信
Server側の実装
以下のように実装します。
createServerに渡すコールバックが呼ばれたとき(Requestが来たとき)にはまだ、RequestのBody(Contents)が来ているわけではないのでrequestに対してdataおよびendのイベントを設定する必要があります。
const server = http.createServer((req, res) => {
if (req.url == "/test") {
let body = [];
req.on('data', (chunk) => { /////Contentsを非同期で取得
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
let obj = JSON.parse(body); ////文字列をJsonに戻す
});
} else{
///その他のRequestへの処理
}
});
サーバー側で以下のようにJsonとして値を取得できました。
結果
ClientからNode.jsのサーバにJsonのデータを送信することができました。
参考にさせていただいたサイト
Get request body from node.js's http.IncomingMessage
I'm trying to implement a simple HTTP endpoint for an application written in node.js. I've created the HTTP server, but now I'm stuck on reading the request con...
コメント