주말에 유투브를 엄청 보고 있다.
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"));