๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Markdown Blog] Node.js, Express ๋ฐ MongoDB ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(Back-End)/Node js

[Markdown Blog] Node.js, Express ๋ฐ MongoDB

์ง•์ง•์•ŒํŒŒ์นด 2023. 6. 22. 01:50
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” Web Dev Simplified ๋‹˜์˜ ์œ ํŠœ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

=> Node.js, Express ๋ฐ MongoDB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Markdown ๋ธ”๋กœ๊ทธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

๐Ÿ–ฅ๏ธ Create Index Route

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

app.set("view engine", "ejs");

app.get("/", (req, res) => {
  res.render("index");
});

app.listen(3000);

 

 

โžก๏ธ Article index

 

โžก๏ธ New Article

 

๐Ÿ–ฅ๏ธ ํ•„์ˆ˜ ํŒจํ‚ค์ง€ ์„ค์น˜

npm install marked slugify

โžก๏ธ marked

: ๋งˆํฌ๋‹ค์šด์„ HTML๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํŒจํ‚ค์ง€

 

โžก๏ธ slugify

์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ  ์‹๋ณ„์ž๋กœ, ID์™€ ๊ฐ™์ด ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์–ด๋ ค์šด ์‹๋ณ„์ž ๋Œ€์‹  ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„

 

โžก๏ธ method-override

: <form>, <a href="">์˜ ๋ฉ”์†Œ๋“œ(์ œ์ถœ๋ฐฉ์‹) ์†์„ฑ์—๋Š” "POST","GET" ๋ฟ -> ์ƒ์„ฑ, ์ฝ๊ธฐ ์ž‘์—… ๋ฐ–์— ํ•  ์ˆ˜ ์—†์Œ

: ์—…๋ฐ์ดํŠธ์™€ ์‚ญ์ œ ์ž‘์—…์„ ํ•˜๋ ค๋ฉด ์š”์ฒญ ๋ฉ”์†Œ๋“œ GET์ด๋‚˜ POST์„ PUT ๋˜๋Š” DELETE์œผ๋กœ ๋งคํ•‘์‹œ์ผœ์ฃผ๋Š” ๋„๊ตฌ

 

<๋ณ€์ˆ˜A>๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ๋•Œ url์˜
( ์˜ˆ์‹œ) /subscriber/update?<๋ณ€์ˆ˜A>=์›ํ•˜๋Š” ๋ฉ”์†Œ๋“œ ) ์ฟผ๋ฆฌ ๋ถ€๋ถ„์—์„œ
<๋ณ€์ˆ˜A>๋ฅผ ํƒ์ƒ‰ํ•ด์„œ ์›ํ•˜๋Š” ๋ฉ”์†Œ๋“œ( PUT ๋˜๋Š” DELETE)๋กœ ๋งคํ•‘

 

โžก๏ธ dompurify jsdom

DOM ๋ ˆ๋ฒจ์—์„œ HTML์„ sanitize ํ•ด์ฃผ๊ณ  XSS ๊ณต๊ฒฉ์„ ๋ง‰์•„์ค€๋‹ค. jsdom ์„ ์‚ฌ์šฉํ•˜๋ฉด node ์™€ ๊ฐ™์€ ์„œ๋ฒ„ ๋ ˆ๋ฒจ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

๐Ÿ–ฅ๏ธ ์กฐํšŒ & ์‚ญ์ œ & ์ˆ˜์ •

 

 

์ฐธ๊ณ ํ•˜์„ธ์šฉ

https://github.com/gani0325/2023/tree/main/Web/MarkdownBlog

728x90
๋ฐ˜์‘ํ˜•
Comments