static / express-session

static

  • ์ •์  ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฏธ๋“ค์›จ์–ด

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

app.use(express.static(path.join(__dirname, 'public-3030')));
  • ํ˜„์žฌ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด ์œ„์น˜ํ•œ ํด๋” ๊ฒฝ๋กœ์— 'public-3030'์ด๋ผ๋Š” ํด๋”๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ํ•ด๋‹น ํด๋”์— ์ •์  ํŒŒ์ผ์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ์ด ํด๋”๋ฅผ ์ •์  ํŒŒ์ผ ์ œ๊ณต์„ ์œ„ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์„ค์ •

  • ์˜ˆ๋ฅผ ๋“ค์–ด, http://localhost:3000/index.html ์š”์ฒญ์ด ์˜ค๋ฉด, ์œ„์—์„œ ์„ค์ •ํ•œ 'public-3030' ํด๋”์—์„œ index.html ํŒŒ์ผ์„ ์ฐพ์•„ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด๋‚˜ ์Šคํƒ€์ผ์‹œํŠธ ๋“ฑ ๋‹ค๋ฅธ ์ •์  ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‘๋‹ต์œผ๋กœ ์ œ๊ณต

  • ์ •์  ํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, HTML, CSS, JavaScript ๋“ฑ์˜ ํŒŒ์ผ๋“ค์„ ์ ์ ˆํ•˜๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

express-session

  • ์š”์ฒญ๋งˆ๋‹ค ๊ฐœ์ธ์˜ ์ €์žฅ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด์ฃผ๋Š”๊ฒŒ express-session

const session = require('express-session');

app.use(cookieParser('testpassword'));

app.use(
  session({
    resave: false,
    saveUninitialized: false,
    secret: 'adampassword', // cookie-parsser์˜ password์™€ ๊ฐ™์ด ์ž‘์„ฑ
    cookie: {
      httpOnly: true,
    },
    name: 'connect.sid', // ๊ธฐ๋ณธ๊ฐ’, ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๋Š” ์„ธ์…˜ ์ฟ ํ‚ค๋Š” 'connect.sid'๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง€๊ฒŒ ๋จ
  })
);

app.get('/', (req, res, next) => {
	req.session;
})

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

  • app.use๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•ฑ์— ๋“ฑ๋ก

  • session์˜ ์˜ต์…˜๋“ค

    • secret: ์„ธ์…˜์„ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋น„๋ฐ€ ํ‚ค. ์ด ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์„ธ์…˜์„ ์ œ๋Œ€๋กœ ์•”ํ˜ธํ™”ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋ณด์•ˆ์ƒ ๋งค์šฐ ์ค‘์š”

    • resave: ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋”๋ผ๋„ ์„ธ์…˜์„ ํ•ญ์ƒ ์ €์žฅํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •. ์ด ๊ฐ’์„ **false**๋กœ ์„ค์ •ํ•˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์„ธ์…˜์„ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์„ฑ๋Šฅ์„ ๋†’์ž„

    • saveUninitialized: ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ƒˆ๋กœ์šด ์„ธ์…˜์„ ์ €์žฅํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •. ์ด ๊ฐ’์„ **true**๋กœ ์„ค์ •ํ•˜๋ฉด ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ƒˆ๋กœ์šด ์„ธ์…˜์„ ์ €์žฅ.

data

  • ๋ผ์šฐํ„ฐ์—์„œ ๋‹ค๋ฅธ ๋ผ์šฐํ„ฐ๋กœ data๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ์„๋•Œ?

    • session์— ์ €์žฅํ•˜๋ฉด ๋‹ค์Œ ์š”์ฒญ๋•Œ๋„ data๊ฐ€ ๋‚จ์•„์žˆ์Œ

app.use((req, res, next) => {
  req.session.data = 'adam๋น„๋ฒˆ';
});

app.get('/', (req, res, next) => {
  req.session.data; // adam๋น„๋ฒˆ

  res.send('./index.html');
  console.log('123');
});
  • 1ํšŒ์„ฑ์œผ๋กœ๋งŒ ๋‚จ๊ธฐ๊ณ  ์‹ถ๋‹ค๋ฉด

app.use((req, res, next) => {
  req.data = 'adam๋น„๋ฒˆ';
});

app.get('/', (req, res, next) => {
  req.data; // adam๋น„๋ฒˆ

  res.send('./index.html');
  console.log('123');
});

Last updated