본문 바로가기

웹/node.js

익스프레스 프로젝트 만들기

1. express 를 설치하자

  > npm init 

  > npm i express 

  > npm i -D nodemon 

    을 하자 그럼 package.json의 dependencis 에 추가가 될 것이다. 

    nodemon은 서버 코드에 수정 사항이 생길때마다 서버를 자동 재시작 시켜준다. 

    (nodemon 이 실행되는 콘솔에 rs 입력해서 수동으로도 재시작이 가능하다.)

    주의!! : scripts 항목에 "start ":"nodemon app" 이 있나 확인하자

    

2. express 에 대한 설명 

   express 에는 http 모듈이 내장되어 있다. 

   express().set('port',포트번호)

   로 실행 포트를 설정할 수 있다. 포트번호 설정시

   process.env.PORT || 포트번호 기본값

   process.env.PORT 에 PORT 속성이 있으면 그 값을 사용하고, 없다면 포트번호 기본값 을 사용한다.

   

   -1. express().set( '키' , '값' )

       으로 데이터를 저장할 수 있고 나중에 express().get('키') 로 값을 가져올 수 있다.

 

   -2. 요청과 메소드들 

       epxress().get(주소, (req,res)=>{ 전송할 내용들 }) 

       epxress().post

       epxress().put

       epxress().patch 

       epxress().delete 

       epxress().options  

       가 존재한다. 

 

    -3. res.send()

        express 에서는 res.end()  , res.write() 를 쓸 필요가 없다. 

        res.end() 를 대신 사용하면 된다.   

 

    -4. 포트의 설정

        express().listen(포트번호)

        로 받는 포트를 설정 할 수 있다.

 

    -5. 내용의 전달

         우선 path 모듈이 필요하다. require('path') 를 꼭 하자

         get과 같은 메소드에서 전송할 내용들을 작성해보자 

         res.sendFile(path.join( __dirname , '/전송할 파일' )) ;

         참고로 __dirname 은 현재 디렉토리 이름

                  __filename 은 현재 파일이다.

 

3. 미들 웨어의 사용시 (p233)

   a> express().use((req, res, next) =>{ 미들웨어 내용})    

   b> express().use('요청  rul' , (req, res, next) =>{ 미들웨어 내용 })

   c> express().get('요청 url' , (req, res, next) =>{ 미들웨어 내용 })  

   d> express().use((err,req,res,next)=>{ 에러 처리 내용 } )

   -1.설명

       b 처럼 url 이 있으면 특정 url에 대한 요청이다. 

       a 처럼 url 이 없으면 모든 요청에 대해 실행된다.

       c 처럼 get, post 등의 메소드들이 있다. 

       next() 로 다음 미들웨어로 넘어갈 수 있다. 

       d처럼 에러 처리는 파라미터를 4개 받아야만 한다.

 

4. 쿠키에 관련된 제어

   -1. npm i morgan cookie-parser express-session dotenv 

       dotenv 를 제외하고는 다 미들웨어이다.  

       --1. morgan : 로그를 더 자세히 볼 수 있다.

       --2. static : 정적 파일들을 제공하는 라우터 역할이다. (p237)

             app.use('요청경로' , express.static('실제경로')

       --3. body-parser (p238)

            요청 본문의 데이터를 req.body 객체로 만들어준다. 

            보통 ajax 요청 데이터 처리 시 사용한다. 

            단 multipart 데이터는 처리 못한다. 

            주로 text나 버퍼 데이터인 raw 데이터 처리시 사용한다. 

            npm i body-parser 로 추가할 수 있다.

            express().use(express.json())

            express().user(express.urlencoded({extend : false}) )

            extend 가 false 면 노드의 querystring 모듈을 사용해 해석하고 

                          true 면 노드의 qs 모듈을 사용한다. qs 는 npm 패키지고 querystring 모듈의 확장판이다.

            body-parser는 post와 put 요청시에도 편리하다.

        --4. cookie-parser (p239)

              express().use(cookieParser('비밀키') )

              비밀키를 제공하여 내 서버가 만든 쿠키임을 검증 할 수 있다. 

              비밀키는 .env 에 COOKIE_SECRET 항목으로 입력하면 된다.

              서명을 쿠키 값 뒤에 붙이며, 서명된 쿠키는  req.signedCookies 객체에 들어있다. 

              또,  쿠키의 생성은 res.cookie() 로 제거는 res.clearCookie() 를 사용해야 된다.

        --5. express-session(p240)

              세션은 사용자별로 req.session 객체 안에 유지된다.

        

 

' > node.js' 카테고리의 다른 글

package.json 과 express 설치하기  (0) 2021.03.30