๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

NODE/node.js

Nodejs_Day 03 :: ๋ฐ์ดํ„ฐ JSON / ์ฟ ํ‚ค ์„ธ์…˜ cookie-session

 

๋ฐ์ดํ„ฐ JSON ๐Ÿ’–

 

JSON (JavaScript Object Notation)

- ๊ฒฝ๋Ÿ‰์˜ DATA ๊ตํ™˜ ํ˜•์‹์ด๋‹ค.

- ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ํšŒ์›๊ฐ€์ž… ๋˜๋Š” ์•ฑ๋“ค์€ ์•ฑ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋‚ด๋ถ€๋Š” ์ „๋ถ€ ์›น์‚ฌ์ดํŠธ๋‹ค (์›น์•ฑ์ด๋ผ ํ•จ)

- ์š”์ƒˆ๋Š” JSON์„ ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค.

 

{

  "apple" : {

          "name" : "๊น€์‚ฌ๊ณผ", "password" : "1111"
            }

  }

 

JSON ๊ฒ€์ฆ ์‚ฌ์ดํŠธ ๐Ÿ’–

 

jsonlint.com/ -> ์ฝ”๋“œ ๋ถ™ํ˜€๋†“๊ณ  Vaildate JSON ํด๋ฆญ

๊ฒฐ๊ณผ์ฐฝ์— Vaild JSON ๋œจ๋ฉด ๊ฒ€์ฆ๋œ ์ฝ”๋“œ๋‹ค.

 

app.get('/list', (req, res) => {

  fs.readFile(__dirname) // ํ˜„์žฌ ๊ฒฝ๋กœ๋ผ๋Š” ๋œป์ด๋‹ค.

});

 

put : ์‹๋ณ„์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ POST์™€ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋‚˜,

์‹๋ณ„์ž๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํ•ด๋‹น ์‹๋ณ„์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

DB ์ˆœ์œ„ ์‚ฌ์ดํŠธ ์•Œ์•„๋ณด๊ธฐ

db-engines.com/en/ranking

 

DB-Engines Ranking

Popularity ranking of database management systems.

db-engines.com

 

 

-------------------------------------------------------------------------------------------

์ฟ ํ‚ค ๐Ÿ’–

 

โœ”Cookie ์ฟ ํ‚ค๋ž€ ?

์›น์„œ๋ฒ„๊ฐ€ ์›น๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋‚ด์–ด ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์„œ๋ฒ„์˜ ๋ถ€๊ฐ€์ ์ธ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ,

๋‹ค์‹œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ฃผ๋Š” ๋ฌธ์ž์—ด ์ •๋ณด์ด๋‹ค.

์›นํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ ์‹œ ๋ฐฉ๋ฌธ๊ธฐ๋ก ๋“ฑ ๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ์ •๋ณด๋“ค์ด ์ €์žฅ๋œ ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‹ค.

 

 

โœ”cookie-parser ๋ชจ๋“ˆ : ์š”์ฒญ ๋œ ์ฟ ํ‚ค๋ฅผ ์‰ฝ๊ฒŒ ์ถ”์ถœ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

express(req)๊ฐ์ฒด์— cookies ์†์„ฑ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

>> npm install cookie-parser

 

res.cookie('ํ‚ค', '๊ฐ’', {

  ์˜ต์…˜

});

 

โœ”์ฟ ํ‚ค ์ƒ์„ฑ ์˜ต์…˜

maxAge : ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•œ๋‹ค.

expires : ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ GMT ์‹œ๊ฐ„ ์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

path : cookie์˜ ๊ฒฝ๋กœ์ด๋‹ค. ๊ธฐ๋ณธ "/"

 

โœ”์ฟ ํ‚ค ์‚ญ์ œ

res.clearCookie('ํ‚ค', {path: '๊ฒฝ๋กœ'});

path : cookie์˜ ๊ฒฝ๋กœ, ๊ธฐ๋ณธ "/" << ์ด ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟ ํ‚ค๋ฅผ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์„ธ์…˜ ๐Ÿ’–

 

>> npm install express-session

express ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์„ธ์…˜์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฏธ๋“ค์›จ์–ด ๋ชจ๋“ˆ์ด๋‹ค.

 

app.use(session({

  ์„ธ์…˜ ๋ชจ๋“ˆ์˜ ์˜ต์…˜

}));

 

 

์„ธ์…˜ ๋ชจ๋“ˆ์˜ ์˜ต์…˜

secret : ์ฟ ํ‚ค๋ฅผ ์ž„์˜๋กœ ๋ณ€์กฐํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ํ†ตํ•˜์—ฌ ์„ธ์…˜์„ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

resave : ์„ธ์…˜์„ ์–ธ์ œ๋‚˜ ์ €์žฅํ•  ์ง€ ์ •ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ false๋กœ ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ true๋กœ ์„ค์ •

saveUninitialized : ์„ธ์…˜์ด ์ €์žฅ๋˜๊ธฐ ์ „์— uninitialized ์ƒํƒœ๋กœ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์„ธ์…˜ ์ดˆ๊ธฐ ์„ค์ •

sess = req.session; // ์ด๋Ÿฐ์‹์œผ๋กœ ์„ธ์…˜ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

sess.userid = 'apple'; // ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์„ธ์…˜ ๋ณ€์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

์„ธ์…˜ userid ๋ณ€์ˆ˜๊ฐ€ 'apple', ๊ธ๊นŒ ์•„์ด๋””๊ฐ’์„ apple๋กœ ์ •ํ•œ๊ฒƒ์ž„

 

์„ธ์…˜ ๋ณ€์ˆ˜ ์‚ฌ์šฉ

console.log(sess.userid);

 

์„ธ์…˜ ์ œ๊ฑฐ

req.session.destroy(()=> {

   ์ œ๊ฑฐ ํ•  ์„ธ์…˜

});

 

* destroy() ๋ฉ”์†Œ๋“œ์—์„œ๋Š” ์„ธ์…˜์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.