본문 바로가기

Programming/Node.js

7. 익스프레스 (1) - express 기본 [1]

node js logo image

 

 

 

 

앞서서 살펴보았던 http 모듈의 사용과 관련해서, 요청 메서드와 주소에 따라서 응답을 보내는 예제를 작성했던 것을 기억하실 겁니다.

 

 

 

5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [5]

앞선 아티클에서 작성하던 RESTful 서버 구현 예제를 이어서 계속 진행해 보겠습니다.   [restFront.css]a { color: blue; text-decoration: none;}  [restFront.html] home about 등록하기   [restFront.js] // 로딩 시 사용

nozeroslope.tistory.com

 

 

이 때 요청 메서드와 주소에 따라서 if문을 중첩하여 사용했습니다. 익스프레스 프레임워크는, 이러한 불편함을 개선하고 http 모듈의 요청/응답 객체에 여러가지 추가 기능들을 부여했습니다. 

 

 

 


 

 

 

○ express 프로젝트 시작

 

프로젝트 생성을 위해 일단 learn-express 폴더를 생성하고, npm init을 실행합니다. 혹은 npm init -y를 실행해 파일을 자유롭게 수정해도 됩니다. 

 

 

[package.json]

 

{
  "name": "learn-express",
  "version": "0.0.1",
  "description": "learning express framework",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app"
  },
  "author": "johndoe",
  "license": "MIT"
}

 

$ npm i express
$ npm i -D nodemon

 

 

scripts 부분의 start 속성은 꼭 필요합니다. nodemon app을 실행하면 app.js를 nodemon으로 실행한다는 의미입니다. 서버 코드를 수정하면, nodemon이 서버를 자동으로 재시작하게 되며 nodemon이 실행되는 콘솔에 rs를 입해서 수동으로 재시작도 가능합니다(단, 이는 개발 환경을 의미하며 라이브에서는 사용하지 않도록 합니다).

 

 

 

○ app.js 

 

이제 본격적으로 서버 역할을 하는 app.js 파일을 작성합니다. 하나씩 차근차근 살펴보겠습니다. 

 

const express =require('express');

const app = express();
app.set('port', process.env.PORT || 3000);

app.get('/', (req, res) => {
    res.send('Hello, Express');
});

app.listen(app.get('port'), () => {
    console.log(app.get('port'), '번 포트에서 대기');
});

 

 

우선 express 모듈을 실행하고, 이를 변수 app에 할당합니다. 우리가 앞서 사용하던 http 모듈은 익스프레스 내부에 내장되어 있으므로, 역시 서버의 역할을 수행하게 됩니다. 

 

app.set('port', 포트)는 서버 실행 포트를 설정하게 됩니다. porcess.env 객체에 PORT 속성이 존재하면 이를 사용하고, 아니면 3000번 포트를 이용하도록 합니다. 참고로 app.set(K, V) 형식으로 데이터 저장이 가능하며 나중에는 app.get(K)로 V를 가져올 수 있습니다.

 

 

이후 내용은 다음 아티클에서 이어서 살펴보도록 하겠습니다.