2021년 3월 20일

Ji Taek Lim·2021년 3월 20일
0
post-thumbnail

주말에 유투브를 엄청 보고 있다.

Cookies, Sessions, JSON Web Tokens (JWT) and More 🍪🔐

https://www.youtube.com/watch?v=uXDnS5PcjCA&t=33s

이거는 너무 어렵다.

ExpressJS Tutorial #1 - Getting Started

https://www.youtube.com/watch?v=T2KjBiwYyBI&list=PL_cUvD4qzbkxZZyyuXa1xkWFhRB_NoQwl

이걸로해야겠다.

어제 정리한게 다 날라갔다. -_-;;;

ExpressJS Tutorial #4 - Middleware Functions

const express = require("express");
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

-> 보낼수 있게 변환해주는 함수


app.use((req, res, next) => {
  console.log(`${req.method} - ${req.url}`);
  next();
});

next()가 있는것을 middle ware라고 하는데 다음에 받는 인자를 middleware라고 함


const users = [
  { name: "Anson", age: 22 },
  { name: "Kevin", age: 21 },
  { name: "Michele", age: 22 },
];

const posts = [
  { title: "My favorite foods" },
  { title: "My favorite game" },
  { title: "My favotire computer" },
];

app.get("/", (req, res) => {
  res.send({
    msg: "Hello!",
    user: {},
  });
});

app.post("/", (req, res) => {
  const user = req.body;
  users.push(user);
  res.status(201).send("created user");
});

app.get("/users", (req, res) => {
  res.send(users);
});

app.get("/users/:name", (req, res) => {
  const { name } = req.params;
  const user = users.find((user) => user.name === name);
  if (user) res.status(200).send(users);
  else res.status(404).send("Not found");
});
--- 여기는 params를 쓴다.

app.get("/posts", (req, res) => {
  console.log(req.query);
  const { title } = req.query;
  if (title) {
    const post = posts.find((post) => post.title === title);
    if (post) res.status(200).send(post);
    else res.status(404).send("Not found");
  }
  res.status(200).send(posts);
});

function validateAuthToken(req, res, next) {
  console.log("Inside Validate Auth Token");
  const { authorization } = req.headers;
  if (authorization && authorization === "123") {
    next();
  } else {
    res.status(403).send({ msg: "Forbidden. Incorrect Credentials" });
  }
}

app.post("/posts", validateAuthToken, (req, res) => {
  const post = req.body;
  posts.push(post);
  res.status(201).send(post);
});

함수가 middleware가 되었다.


app.listen(3000, console.log("listening on port 3000"));

profile
임지택입니다.

0개의 댓글