🦒 【Node.js、Express】バックエンドサーバー8(開発vanilla)
作成日: 2022/05/03
2

■本
はじめてつくるバックエンドサーバー(Node.js & Express)

■メモ
localhost4000チェック

const http = require("http");

http.createServer(function (req, res) {
  // GET、POSTリクエストに対する処理
}).listen(4000, function () {
  // ブラウザでlocalhostを開いたときの処理
  console.log("Listening on localhost port 4000");
});

res.write("Hello"); ..
res.end(); .. ばっくえバックエンドサーバからの応答「レスポンス終わり」

ブラウザからのreqの確認
console.log("reqの中身:" , req);
→GETだった

日本語

const http = require("http");

http.createServer(function (req, res) {
  // GET、POSTリクエストに対する処理
  console.log("reqの中身:" , req);
  res.setHeader("Content-Type", "text/plan;charset=utf-8");
  res.write("こんにちは");
  res.end();
}).listen(4000, function () {
  // ブラウザでlocalhostを開いたときの処理
  console.log("Listening on localhost port 4000");
});

outdoorの遷移先がpostに

const http = require("http");

http.createServer(function (req, res) {
  // GET、POSTリクエストに対する処理
  if (req.url === "/") {
    res.setHeader("Content-Type", "text/plan;charset=utf-8");
    res.write("こんにちは");
    res.end();
  } else if (req.url === "/about") {
    res.setHeader("Content-Type", "text/plan;charset=utf-8");
    res.write("ここはaboutページです。");
    res.end();
  } else if (req.url === "/hobby") {
    res.setHeader("Content-Type", "text/html");
    res.write('<form action="/outdoor" method="POST"><input type="text" name="sports"><button type="submit">Submit</button></form>');
    res.end();
  } else if (req.url === "/outdoor") {
    console.log(req);
  }
}).listen(4000, function () {
  // ブラウザでlocalhostを開いたときの処理
  console.log("Listening on localhost port 4000");
});

console.log("reqの中身:" , req);
→GETだった

◎問題点
ユーザーが/outdoor遷移した場合 … GET
本来はPOST
POSTだけのはずが、GETまで実行されている
→urlだけでなくhttpメソッドも

const { appendFile } = require("fs");
const http = require("http");

http.createServer(function (req, res) {
  // GET、POSTリクエストに対する処理
  if (req.url === "/") {
    res.setHeader("Content-Type", "text/plan;charset=utf-8");
    res.write("こんにちは");
    res.end();
  } else if (req.url === "/about" && req.method === "GET") {
    res.setHeader("Content-Type", "text/plan;charset=utf-8");
    res.write("ここはaboutページです。");
    res.end();
  } else if (req.url === "/hobby" && req.method === "GET") {
    res.setHeader("Content-Type", "text/html");
    res.write('<form action="/outdoor" method="POST"><input type="text" name="sports"><button type="submit">Submit</button></form>');
    res.end();
  } else if (req.url === "/outdoor" && req.method === "POST") {
    console.log(req);
  }
}).listen(4000, function () {
  // ブラウザでlocalhostを開いたときの処理
  console.log("Listening on localhost port 4000");
});

Node.js、Express比較

Node.js ... if文必要だった(大変)
Express ... appendFile.get("/" ...)でいける

完 93%

■紹介されていた
ばっkバックエンドサーバ開発時に使われているらしい
https://www.postman.com/