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