ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Node JS, Express JS]
    React/프로젝트 2022. 1. 19. 16:34
    1. Node JS
      • node를 사용하기 전에는 js를 브라우저 속에서만 사용
      • java, php, go, python과 같은 하나의 언어이다.
      • node js를 통해 js를 브라우저(chrome, IE)가 아닌 서버 사이드에서도 사용
        • 오픈소스, 크로스 플랫폼이며, 개발자가 모든 종류의 서버 사이드 도구들과 어플리케이션을 JavaScript로 만들수 있도록 해주는 런타임 환경
        • 런타임은 브라우저 밖에서 실행(서버OS에서 직접적으로 실행)
      • 장점
        • 단위시간당 처리량과 어플리케이션에서 확장성을 최적화
        • 순수 자바스크립트로 작성
        • NPM(노드 패키지 매니저)은 수천만개의 재사용 가능한 패키지에 접근
          => 의존성 해결, 수많은 빌드 툴체인 자동화
      • Node 자체가 다른 일반적인 웹 개발 기능을 지원하지 않는다.
        • HTTP(GET, POST, DELETE 등)패턴에 대한 특정 처리를 추가하려면 서로 다른 URL 경로("route")를 사용하여 요청을 개별적으로 처리, 정적 파일을 제공, 템플릿을 사용하여 동적으로 응답 생성하고 코드를 직접 작성할 필요가 있다.
        • 기본적인 것들을 직접 구현하는 작업을 피하고 웹 프레임워크를 사용할 수 있다 => Express framework
      • node download (LTS)
      • 버전 확인
        • node -v
    2. Express JS
      • node js를 쉽게 이용할 수 있는 프레임워크
      • npm을 이용해서 설치
        • npm install express --save
        •  
      • Express 매커니즘
        • HTTP 통신 요청 (GET, POST, DELETE ..등)에 대한 핸들러를 만든다.
        • 템플릿에 데이터를 넣어 응답(response)을 만들기 위해 view의 렌더링 엔진과 결합한다.
        • 접속을 위한 포트나 응답 렌더링을 위한 템플릿 위치같은 공통 웹 어플리케이션 세팅을 한다.
        • 핸들링 파이프라인 중 필요한 곳에 추가적인 미들웨어 처리 요청을 추가한다.
        • 쿠키, 세션, 사용자 로그인, URL 파라미터, POST 데이터, 보안 헤더 등 라이브러리 포함
      • 저장된 파일을 서버화하기 (express.static())
        • 이미지, CSS, JavaScript를 포함한 정적파일을 제공하는 미들웨어
        • app.use(express.static('public'))
          
          // 'public'이라는 디렉터리에서 이미지, CSS파일 및 JavaScript파일을 제공한다.
    3. npm 패키지 만들기
      • 프로젝트 폴더에서 npm init 명령어 사용
      • 설치 후 에디터를 키면 package.json 파일에 대충..이런게 생성됨
        package.json
    4. express js 앱 만들기 (index.js)
      • index.js가 백엔드 시작점이다.
      • // express 기본 예
        
        const express = require("express");
        // require() : 가져오기
        // Express모듈 생성
        const app = express();
        
        app.get("/api/hello", (req, res) => {
        // 경로 정의
        // http 요청에 대한 콜백 라우트 핸들러 함수 정의
        // 콜백 함수는 요청(req)과 응답(res)객체를 인수로 취한다.
            res.send("Hello World!");
            // res.send() : 문자열 반환
            // res.json() : JSON응답
            // res.sendFile() : 파일을 보냄
        });  // http://localhost:5000/api/hello 주소 확인
        
        const port = 5000;
        app.listen(port, () => {
            console.log(`Example app listening at http://localhost:${port}`)
        });
        
        
        // 참고 문서
        // http://expressjs.com/en/starter/hello-world.html
      • index.js 실행 => npm run start
      • 실행 결과

    'React > 프로젝트' 카테고리의 다른 글

    [로그인]  (0) 2022.01.24
    [Bcrypt] - 비밀번호 암호화  (0) 2022.01.21
    [Nodemon]  (0) 2022.01.21
    [express.Router]  (0) 2022.01.20
    [bodyParser]  (0) 2022.01.20
Designed by Tistory.