Node.js 공부2️⃣ : ESM (2) express로 서버 구축하고 서버에서 파일 전송하기

최민지·2024년 7월 6일

Node.js

목록 보기
3/6

들어가기 전에

오늘은 express 로 서버 구축하기!
근데 하나 궁금증이 생겼다.. ESM 방식에 속해있는 모듈이 express인건가?
ESM 방식은 그냥 express 모듈을 쓰는 걸 말하는 건가?
다른 전문가들 입장에서는 바보같은 질문이라고 생각할 수 있지만 ㅜㅜ
그치만 궁금한걸... 여튼 여기저기 검색중이니 알아보는데로 글 수정하겠다..!!

express로 서버 구축하기

express는 가장 많이 사용하는 프레임워크라고 한다!!
express 는 미들웨어의 연결로 보면 편한데, 서버 요청이 들어오면 여러 미들웨어의 수행을 거쳐서 응답이 이루어진다!


[사진 출처]

서버 구축 코드

import express from 'express';

const app = express();

// middleware

app.listen(3000, () =>{
    console.log('Server is running');
});

코드는 이렇게 !
express 모듈을 import 하여 사용한다.
그리고 app 이라는 객체를 만들어 express 를 할당해주었다.
app.listen 부분은 전과 동일!

서버에서 파일 전송하기

import express from 'express';
import path from 'path';

const __dirname = path.resolve();

const app = express();

//middleware
// main page GET
app.get('/', (req, res) => {
    //res.send('Main page GET request');
    //res.send('<h1>Hello Main page</h1>');
    
    /*res.send(`
        <h1>H1</h1>
        <h2>H2</h2>
        `)
    */

    res.sendFile(__dirname + '/public/main.html')
})

app.listen(3000, () =>{
    console.log('Server is running');
});

서버 구축하고, 파일을 전송하는 코드는 위와 같다.
이 부분을 한 줄 씩 보자!

import express from 'express';
import path from 'path';

const __dirname = path.resolve();

res.sendFile(__dirname + '/public/main.html') 부분에서 dirname을 사용하려면 path 모듈을 import 해줘야 하므로 코드는 위처럼 구성한다.

const app = express();

app 이라는 객체를 만들어 express 를 할당해주었다.

//main page GET 부분에서는

res.send('Main page GET request');

이렇게 기본적인 방법으로 페이지를 구성하여 보낼 수도 있고,

res.send('<h1>Hello Main page</h1>');

화면을 표현해줄 때 html을 사용하는데, 위와 같이 html 코드를 통해 화면을 전송해줄 수 있다.

이때 여러줄을 한꺼번에 보내고 싶다면!

res.send(`
        <h1>H1</h1>
        <h2>H2</h2>
        `);

이렇게 작성해주면

이렇게 메인 페이지에 작성된다 !

res.sendFile(__dirname + '/public/main.html')

다음은 dirname을 사용하는 코드이다.
html 파일을 사용하는 방법인데

html 파일

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Main page</title>
</head>
<body>
    <h1>Main page</h1>
</body>
</html>

! 을 작성하면 나오는 기본 코드를 사용했다.

이렇게 오늘은 서버에서 파일을 전송하는 방법까지 공부했다. 하다가 생긴 오류가 있었는데 도움이 될까하여 같이 첨부한다.

오류

[오류 해결법 참고 블로그]

node:events:497 throw er; // Unhandled 'error' event

터미널에서 실행하는 중에 이런 오류가 있어 헤맸는데, 위 링크를 첨부한 블로그를 보고 해결할 수 있었다.
기존의 node.js가 계속 실행되지 않아 충돌해서 생기는 문제라고 한다!
필요한 분들은 참고하시길!
나는 그럼 이만.. 🐜🐜🐜

profile
공부..일기....

0개의 댓글