【Node.js】GETとPOST の変数を取得してみる

以前、node.js で GET変数を受けられるようにしましたが、

POST でも値が受けられるようにしてみました。(※ 今回は「 msg 」 という変数名)

const http = require('http');
const PORT = 8124;

http.createServer((request, response) => {
    request.setEncoding("utf-8");
    res.writeHead(200, {
        "Content-Type": "application/json",
        "Access-Control-Allow-Origin": "*",
    })

    if (request.method === 'GET') {
        const data = require('url').parse( request.url , true );
        const msg = data.query.msg + "";

    }

    if (request.method === 'POST') {
        request.on("data", chunk => {
            const data = JSON.parse(chunk);
            const msg = data["msg"];

        });

    }

    response.end('Finish !\n');

}).listen(PORT);

console.log(`Server running at http://localhost:${PORT}/`);

追記

上のソースだと、何回かに一回、GET変数が取得できないことがあった。

↓こちらのように、クエリーをパースするのが正解だと思う。