-
[Node JS, Express JS]React/프로젝트 2022. 1. 19. 16:34
- 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
- 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파일을 제공한다.
- npm 패키지 만들기
- 프로젝트 폴더에서 npm init 명령어 사용
- 설치 후 에디터를 키면 package.json 파일에 대충..이런게 생성됨

package.json
- 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 - Node JS