Day3 - wjddnjswjd12/fe-w3-shopping GitHub Wiki

๋ผ์šฐํŒ…์ด๋ž€

  • URI(๊ฒฝ๋กœ) ๋ฐ ํŠน์ •ํ•œ HTTP ์š”์ฒญ ๋ฉ”์†Œ๋“œ (get, post)์˜ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •
  • ๊ฐ ๋ผ์šฐํŠธ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์งˆ์ˆ˜์žˆ๊ณ , ๋ผ์šฐํŠธ๊ฐ€ ์ผ์น˜ํ•  ๋•Œ ์‹คํ–‰๋œ๋‹ค.
app.get(PATH(๊ฒฝ๋กœ),HANDLERํ•จ์ˆ˜)

app์€ express๊ฐ์ฒด์ด๋‹ค. method์—๋Š” get๊ณผ post๋ฐฉ์‹์ด ์žˆ๋‹ค PATH์—๋Š” ํ•ด๋‹นํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด์˜ ์„œ๋ฒ„ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. HANDLER์€ ๋ผ์šฐํŠธ๊ฐ€ ์ผ์น˜ํ• ๋–„ ๋ฐœ์ƒํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

์˜ค๋Š˜ ๋ฏธ์…˜์„ ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•ด๋ณธ app.get()๊ด€๋ จ ์ฝ”๋“œ:


let homeContents;
homeContents = JSON.parse(
  fs.readFileSync("./public/data/homeContents.json", "utf8")
);
app.get("/homeContents.json", (req, res, next) => {
  res.json(homeContents);
});

Adela์˜ ์ฝ”๋“œ๋ฅผ ์—ผํƒํ•˜๋˜ ์ค‘ ์ €๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„์—์„œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ธฐ์— ์˜ณ๊ฑฐ๋‹ˆ! ํ•˜๊ณ  ๊ฐ€์ ธ๋‹ค ์จ๋ดค๋‹ค.

๊ตฌ๊ธ€๋ง์œผ๋กœ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ res.send()๋ณด๋‹ค res.json()์œผ๋กœ ๋ณด๋‚ด๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค. ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋‹ด์•„์„œ ์ธ์ž๋กœ ๋„˜๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— res.send(homeContents);๋ฅผ ์“ด๋‹ค๋ฉด JSON๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š”์ง€ ๋ญ˜ ๋ณด๋‚ด๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š๊ธฐ์— res.json์„ ์‚ฌ์šฉํ•˜์—ฌ JSON๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค๋Š” ์˜๋„๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚˜๋„๋ก ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค....!

๋‹ค๋ฅธ ์ด์œ ๋„ ์žˆ๋Š”๋ฐ... ์„ค๋ช…์„ ๋ณด๊ณ ๋„ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋ผ์„œ ์ด๊ฑด ์ดํ•ด๊ฐ€ ๋˜๋ฉด ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ค..

fetch API

fetch๋Š” Ajax ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋‹ค. fetch api๋ฅผ ํ‹€๋Œ€๋กœ ์ ์šฉํ•ด๋ณธ ์ฝ”๋“œ:

fetch("http://localhost:3000/planningEvent.json")
    .then((response) => response.json())
    .then((data) => console.log(data));

fetch API๋Š” promise๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. thenํ‚ค์›Œ๋“œ=> ์•ž์˜ ํ•จ์ˆ˜ ์‹คํ–‰์ด ๋๋‚˜๋ฉด ๊ทธ ๋‹ค์Œ์œผ๋กœ ํ•  ์ผ์„ ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ 'fetch(์„œ๋ฒ„์ฃผ์†Œ)'๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ "์ด ์„œ๋ฒ„ ์ฃผ์†Œ๋กœ ์š”์ฒญํ•ด์ค˜!!" ๋ผ๋Š” ์˜๋ฏธ์ด๊ณ , ๋’ค์— .then์ด ๋ถ™์œผ๋ฉด, "์š”์ฒญ ๋๋‚˜๊ณ  ๋‚˜์„œ ์ด ํ• ์ผ์„ ํ•ด์ค˜!!!!" ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

๋งˆ๋ฌด๋ฆฌ...

๋ฌดํŠผ ์˜ค๋Š˜ ์บ๋Ÿฌ์…€? carousel ์„ ๊ตฌํ˜„ํ•ด๋ดค๋Š”๋ฐ... ๋ฒ„ํŠผ์—๋‹ค๊ฐ€ event๋ฅผ ๊ฑธ์–ด์•ผํ•˜๋Š”๋ฐ ๋ญ”๊ฐ€ ์ž๊พธ ์‚‘์‚ฌ๋ฆฌ๋‚˜์„œ ์ž‘๋™ํ•˜๋‚˜ ํ™•์ธ๋งŒ ํ•˜๋ ค๊ณ  setInterval์„ ํ†ตํ•ด carousel์„ ์›€์ง์—ฌ๋ดค๋‹ค..

ํ˜„์žฌ์ƒํƒœ(outline:red ํ‰์ธก์ฃผ์˜):

current

์ฐธ๊ณ :