환경
- Visual Studio Code
- Node v10.16.3
Express란?
Express.js, 또는 간단히 익스프레스(Express)는 Node.js를 위한 웹 프레임워크의 하나로, MIT 허가서로 라이선스되는 자유-오픈 소스 소프트웨어로 출시되었다. 웹 애플리케이션, API 개발을 위해 설계되었다. Node.js의 사실상의 표준 서버 프레임워크로 불리고 있다.
wiki에서 얻어온 글이다.
Express는 프레임워크 이다.
Java에서는 Spring 프레임워크가 있다.
Spring 프레임워크는 Java 개발을 편리하게 만들어 주듯이
Express 프레임워크는 Node.js의 개발을 편리하게 만들어 준다고 생각하면 될 듯 하다.
가장 많이 쓰인다고 한다.
개발환경 구축
개발환경 구축 전에 npm에 대해 간략하게 알아보자
Node Package Manager(혹은 Node Package Module)의 줄임말로써 Python의 pip나 Ruby의 gem처럼 Node.js의 패키지를 관리할 수 있는 도구이다. 또한 npm을 사용하여 패키지를 공유하는 온라인 패키지 저장소의 이름이기도 하다.
wiki에서 얻어온 글이다.
여기에 덧붙이자면 npm은 Java에 maven 혹은 gradle 같은 패키지 관리 도구이다.
npm 얘기를 왜 했냐!!!!
Express.js는 이 npm에서 다운로드 할 수 있다.
Node.js를 설치하면 설치파일 안에 npm이 내장되어 있다.
- npm으로 module install
1
npm install [module_name]
- npm으로 module uninstall
1
npm uninstall [module_name]
module의 default 다운로드 경로는 ./node_modules/module_name 이다.
이제 시작해보자.
자신이 원하는 위치에 폴더를 만든다 (ex.Express)
VSCode를 실행 후 이 폴더를 open!
VSCode에서 ctrl+j 를 입력! (Terminal 켜기)
Terminal에서 다음과 같이 입력
1
npm init
괄호 안에 있는 값들은 default 값이다 -> 아무런 값 입력 안하면 괄호 값으로 입력 됨
package.json 파일이 생긴 것을 확인 할 수 있다.
package.json 파일에 dependecies에 express를 추가하자!
추가한 후에
1
npm install
node_modules folder와 package-lock.json 파일이 생성됐다.
node_modules folder에 가보면 express가 설치된 것을 확인 할 수 있다.
여기까지가 express.js 개발환경 세팅 완료다.
package.json
Helloworld를 하기 전에 package.json에 대해 간단히 짚고 넘어가자.
1
npm install [module_name]
위 명령어를 통해 npm module들을 다운 받는다.
이 다운 받은 파일들은 node_modules 폴더 안에 저장이 된다.
내가 프로젝트를 하면서 module들을 n개 받았다고 하자.
내 팀원 혹은 다른 환경에서는 이 module들을 다운 받기 위해 n번의 npm install 명령어를 실행해야 한다.
더군다나 버전까지 있다면 더욱 더 골치아파 진다.
이러한 불편함을 해결하기 위해 module들을 list화 하여 관리하는 package.json이 필요하다.
Express Helloworld
이제 개발환경 구축 및 짧게나마 개념들을 살펴봤으니 Helloworld를 시작해보자.
-
server.js 파일 생성
-
다음과 같이 코드 작성
1
2
3
4
5
6
7
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello World!!'))
app.listen(port, () => console.log("server.js listening at port 3000"))
- terminal에서 node server.js 로 실행
- 웹 브라우저에서 확인
잘 출력되는 것을 확인 할 수 있다.
간단히 server 예제 코드를 짜봤다.