'Node' 태그의 글 목록 :: 잡다한 프로그래밍
반응형

1. express-session 및 session-store 설치하기

다음과 같이 express-session과 session-file-store를 설치한다. express-session은 세션을 사용하기 위한 미들웨어이고, session-file-store는 session을 파일로 저장하기 위해 사용하는 미들웨어이다. 만약 DB에 저장하려면 다른 미들웨어를 사용하면 된다.

npm install -s express-session

npm install -s session-file-store

2. 설치한 미들웨어 사용하기

다음과 같이 기존 미들웨어 아래에 설치한 미들웨어를 사용하겠다고 선언한다

var session = require('express-session')
var FileStore = require('session-file-store')(session)

 

이후 다음과같은 코드를 추가한다. secret은 사용자가 선택하는 String이 될 수 있으며 이 스트링을 통해 암호화한다. store는 방금 설치한 session-file-store를 통해 파일로 저장하겠다는 의미이다.

app.use(session({
    secret: 'asadlfkj!@#!@#dfgasdg',
    resave: false,
    saveUninitialized: true,
    store: new FileStore()
  }))

3. 세션 스토어를 통한 세션 저장 실습

다음과 같이 사용자가 접속할 경우 session.num을 1로 추가하여 1씩 증가하는 코드이다. 만약 이 코드를 세션 스토어를 사용하지 않고 사용했을 경우에는 node서버를 재시작할 경우 num이 다시 1부터 증가하는 것을 확인할 수 있지만 세션 스토어를 사용할 경우 프로젝트 내부에 session이라는 폴더가 생기고 그 안에 암호화된 세션 파일이 생섬 됨을 확인할 수 있다. 따라서 서버를 재시작하더라도 num이 초기화되지 않는 것을 확인할 수 있다. 이를 이용하면 서버를 재시작하여도 사용자의 로그인이 끊기지 않는다는 등 다양한 구현이 가능해진다.

app.get('/', function (req, res, next) {
    console.log(req.session);
    if(req.session.num === undefined){
        req.session.num = 1;
    } else {
        req.session.num =  req.session.num + 1;
    }
    res.send(`Views : ${req.session.num}`);
})
반응형
반응형

1. Express란?

 


2. 설치방법

sudo npm install express -g

express app

3. 구조

/myapp
 ⌊ /bin
     ⌊ www
 ⌊ /public
     ⌊ /images
     ⌊ /javascripts
     ⌊ /stylesheets
 ⌊ /routes
     ⌊ index.js
     ⌊ users.js
 ⌊ /views
     ⌊ index.jade
 ⌊ app.js
 ⌊ package.json

/bin/www : 실제 node.js 웹 서버를 실행하는 부분(Port설정 및 서버 실행 부분)

 

/public : 공유자원을 이용할때 사용하거나, 정적 파일을 위한 폴더. Images, Javascripts, stylesheets가 있다.

쉽게 이야기하여 서버에서 자원을 이용할 때 이 폴더를 이용한다.

 

/routes : 라우팅을 위한 폴더. 사용자의 접근을 어떻게 처리할지 적혀 있는 부분.

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) { //사용자가 /이라는 URL로 접근했을 때
res.render('index', { title: 'Express' });
});
module.exports = router;
  • req : 클라이언트의 request를 담고 있다.
  • res : request가 온 클라이언트로 response 하는 객체이다.

/views : 사용자가 바라보는 웹 View가 들어있는 폴더이다 기본으로는 index.Jade가 있으며 ejs, pug, html 등 자유롭게 사용할 수 있다.

 

app.js : 웹 서버에 필요한 설정이 담겨있는 파일이다. 핵심적인 파일으로서 사용자가 사용할 미들웨어들이 포함되어 있거나 public, route 등의 설정이 담겨있다. 서버는 app.js를 바라보고 설정을 연동한다.

 

package.json : express에 설치된 모듈의 정보, 프로그램의 이름, 버전 등 express에 관한 정보를 기록한다. 설치된 모듈의 정보가 package.json에 저장되어 있어 사용자가 다시 설치할 때는 npm install을 입력하게 되면 기술된 모듈의 정보로 자동 설치한다.


4. 실행

sudo npm install

sudo npm start

npm start 이후 http://localhost:3000으로 접속한다. 이때 3000이라는 포트번호를 바꾸고 싶을 경우 www파일을 수정하면 된다. 아래와 같은 화면이 실행되면 제대로 설치된 것이다.

 

반응형

+ Recent posts