[ Node.js ์ž…๋ฌธ์ฃผ์ฐจ2 (2-0)] ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ joi

2023. 8. 31. 21:05ใ†3. Node.js

joi๋ชจ๋“ˆ

์ค‘์ฒฉ์ด๋‚˜  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ api๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ํ™•์ธํ•˜๋Š”๋ฐ ์กฐ๊ฑด๋ถ€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” joi๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

 


์‚ฌ์šฉ๋ฐฉ๋ฒ• 

1) npm์„ ํ†ตํ•ด ๋ชจ๋“ˆ์„ค์น˜ 

$ npm install joi --save

2) joi๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค

const Joi = require('joi');

3) ๋Œ€ํ‘œ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ผ€์ด์Šค๋Š” ์Šคํ‚ค๋งˆ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

const schema = Joi.object({
  name: Joi.string().min(3).required(),
  email: Joi.string().email().required()
});

 


์•„๋ž˜๋Š” ๊ณต์‹ํ™ˆํŽ˜์ด์ง€ joi์˜ ํ™œ์šฉ๋ฒ•๊ณผ ์ถ”๊ฐ€๋กœํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด ๋‘๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค.

URL : https://joi.dev/api/?v=17.9.1 

 

joi.dev

 

joi.dev

 


https://youtu.be/5SFOexX9am8?si=d49BaA4Os2QvLYYw

YOUTUBE - Roberts Dev Talk

์œ„์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ๊ฐ™์ด ํšŒ์›๊ฐ€์ž… api๋ฅผ ๋งŒ๋“ค๋•Œ, ์ „ํ™”/์ด๋ฉ”์ผ ์˜ ๊ฐ’์„ ๋ฐ›์•„์˜ฌ๋•Œ

์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์˜ˆ๋ฅผ๋“ค๋ฉด ์ด๋ฉ”์ผ๊ฐ’๊ณผ ์ „ํ™”์˜ ๊ฐ’์ด ํ•„์ˆ˜์‚ฌํ•ญ์ด ์•„๋‹Œ ์„ ํƒ์‚ฌํ•ญ์ผ๋•Œ

์„ ํ˜ธํ•˜๋Š”๊ฒƒ์„ ์„ ํƒํ•˜๋ผ ๋ผ๋Š” ๋ถ€๋ถ„์„ joi๋ฅผ ํ†ตํ•ด์„œ ์œ ํ˜•์— ๋งž๊ฒŒ ๊ทœ์น™์„ ๋„ฃ์–ด์„œ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.