본문 바로가기
node.js 교과서

[node.js 교과서 | 6장] 익스프레스로 웹 서버 만들기(1) : express설치, 기본 설정

by 솨앙 2024. 9. 29.
반응형

본 글은 Node.JS 교과서(조현영, 길벗출판사) 를 읽고 공부하며 작성한 글로, 틀린 내용이 있을 수 있습니다.

 

express란?

- 서버를 제작하는 과정에서의 불편함을 해소하고 편의 기능을 추가한 웹 서버 프레임워크

- 익스프레스는 모듈의 요청과 응답 객체에 추가 기능들을 부여하여 코드 작성에 편리하게 만들어준다.

추가 참고자료

https://codingapple.com/unit/nodejs-3-express-install/

 

Node.js와 Express 라이브러리 설치하기 - 코딩애플 온라인 강좌

0:00 Node.js 설치와 터미널열고 버전체크해보기 2:56 VS code 에디터 설치와 작업폴더 열기  5:08 npm으로 package.json만들기, 그리고 express 라이브러리 설치하기 * yarn을 사용하실 분들 참고 * yarn이 2.0 버

codingapple.com

1. package.json 파일 생성

- package.json 파일은 어떤 라이브러리를 사용했는지 기록해두기 위함

1. VS code에서 작업을 할 폴더를 생성하고 new terminal 을 열어줍니다.
2. npm init 입력
이런 출력이 나오면 성공
3. package.json 작성 시작
- 엔터를 치며 원하는데로 작성해주면 된다.
4. (추가) 제작된 package.json 파일의 scripts 부분에 start 속성 작성해주기 - nodemon

- nodemon은 Node.js 애플리케이션을 개발할 때 유용한 도구이다.
- 자동 재시작 : 코드 변경이 감지되면 서버를 자동으로 재시작해 줍니다.

 

2. app.js 파일 작성 : 서버의 역할을 할 파일이다.

const express = require('express'); // express 모듈 불러오기
const app = express(); //app 인스턴스 생성
app.set('port',process.env.PORT || 3000); //서버가 실행될 포트를 설정, process.env객체에 PORT 속성이 있다면 사용하고 없다면 3000

// 기본 라우트 설정 : 주소에 대한 GET요청이 올때 어떤 동작을 할지
app.get('/', (req, res) => { //req는 요청에 관한 정보가 들어있는 객체, res는 응답에 대한 정보
  res.send('Hello Express');
});

// 서버 시작
app.listen(app.get('port'), () => { //지정한 포트에서 서버 실행
  console.log(app.get('port'),'번 포트에서 대기 중');
});

 

3. 터미널을 통해 'npm start'을 입력하면 포트 3000번에서 실행된다.

- http://localhost:3000 번으로 이동하여 확인

 

4. (추가) html로 응답해보자

- 단! 파일의 경로를 path 모듈을 사용해서 지정해야한다.

const express = require('express'); 
const path = require('path');

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

// 기본 라우트 설정
app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname,'/index.html'));
});

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

<예시 html 파일>

<html>
    <head>
        <meta charset = "UTF-8"/>
        <title> express server</title>
    </head>
    <body>
        <h1>let's learn</h1>
        <p>express</p>
    </body>
</html>

실패작

-가지고 있는 html template을 연결해보고자 해봤다.

기대한 모습
실패.. 왜지용...

 

반응형