컴퓨터/웹 : JS

[Node.js] express 시작하기 (node.js 다운로드, npm, express)

도도새 도 2023. 1. 6. 22:10

제목

 

 

Node.js - express를 이용하여 만든 웹사이트를 호스팅하는 과정에서 에러가 발생하였다. fly.io를 이용했고, fly.io의 커뮤니티를 샅샅히 뒤진 결과 ip주소를 바꾸라는 등, 시스템 에러가 발생해 수정하는 중이라는 등의 결과를 얻었는데, 완전히 호스팅이 됨을 확인하기 위해 가장 기본적이고 가벼운 웹사이트를 하나 올릴 필요가 생겼다.(현재 문제를 해결하였다.)

 

추후 공부한 내용을 모두 정리할 생각이 있었기에, 이번 기회에 공부한 내용을 정리하며, 내용을 바탕으로 새로운 웹사이트를 제작해보고자 한다.

 

우선 오늘 할 것은 express를 이용해 HELLO WORLD를 띄워보는 예제이다.

 

Node.JS와 Express란?

 

Node.JS란?

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

 

내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

 

express란?

express. js또는 간단히 express(Express)는 Node.js를 위한 웹 프레임워크의 하나이다.

서버를 쉽게 구성할 수 있게 해주는 클래스와 라이브러리의 집합체라고 할 수 있다.

 

우선 Node 기반으로 웹페이지를 실행할 것이기 때문에 Node.js를 다운로드한다.

https://nodejs.org/ko/download/

 

다운로드 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

웹을 만들기 위해서는 다양한 API, 툴, 패키지들을 사용하여야 한다. 이를 위해 npm을 사용한다.

 

npm이란?

Node Package Manager의 줄인말.

노드 패키지를 관리해주는 툴이다. npm을 이용하면 쉽게 이미 존재하는 모듈들을 받아서 사용할 수 있다. Node.js를 설치하면 npm역시 다운로드가 된다.

 

Node.JS시작하기

 

이후 터미널을 켜고, 웹페이지 파일들을 넣을 폴더로 이동해 아래 명령어들을 입력한다.

 

npm init

그럼 package.json이라는 파일이 생긴다.

 

이후, 해당 폴더에 express를 설치한다. 해당 폴더의 경로의 터미널에서 명령어를 입력한다.

 

 

npm i express

 

다음으로 index.js라는 이름의 파일을 생성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const express = require('express');
const app = express();
 
app.get('/', (req, res)=>{
    res.send("Hello World!");
});
 
app.get('/dog', (req, res)=>{
    res.send("멍멍이 멍멍");
});
 
app.listen(3000, ()=>{
    console.log("Connect!!")
});
cs

그리고 터미널에서 node index.js로 해당 파일을 실행한다.

 

 

node index.js

 

인터넷을 켜고 localhost:3000을 입력하면 아래의 결과가 출력됨을 확인할 수 있다.

localhost:3000
localhost:3000/dog

 

express 홈페이지에 가면 코드에 대한 설명이 존재한다.  해당 홈페이지의 안내서를 모두 읽어보는 것이 도움이 될 것이라고 생각한다.

https://expressjs.com/ko/guide/writing-middleware.html

 

Express 앱에서 사용하기 위한 미들웨어 작성

Express 앱에서 사용하기 위한 미들웨어 작성 개요 미들웨어 함수는 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한

expressjs.com

 

 

+ 미들웨어 함수

 

Middleware function이란 req객체와 res객체, 그리고 응답 요청 사이클 도중 실행되며, 그 다음에 존재하는 미들웨어 함수에 대한 엑세스 권한을 가진다.

 

미들웨어 함수란 쉽게 말해 거쳐가는 함수라고 할 수 있다.

 

미들웨어 함수 예시

 

index.js파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const express = require('express');
const app = express();
 
const middleWare1 = (req, res, next)=>{
    console.log("미들웨어 1번");
    next();
};
 
const middleWare2 = (req, res, next)=>{
    console.log("미들웨어 2번");
    next();
};
 
app.get('/', middleWare1, middleWare2, (req, res)=>{
    console.log("마지막")
});
 
app.listen(3000, ()=>{
    console.log("Connect!!")
});
```
cs
14: /의 주소로 들어온 것을 처리한다. console.log('마지막')을 처리하기 전 2개의 미들웨어 함수를 거친다.

 

결과

$ node index.js

Connect!!

미들웨어 1번 미들웨어 2번 마지막