[Express] res.sendFile(path.join(__dirname, '~~'));에 대하여

2023. 1. 12. 23:15·Learning-Log/Computer Science
728x90
320x100

res.sendFile은 말 그대로 response에 해당 파일을 전송하는 명령어이다.

보통은 이 메소드를 통해 클라이언트 즉, FE단으로 데이터를 전송하는데 쓰인다.

한편, path.join은 경로를 지정해주는 메소드이다. 
path.join에서는 미리 선언된 __dirname을 사용할 수 있다. __dirname 는 현재 해당 파일이 존재하는 폴더 경로를 뜻한다.
(단, CommonJS 모듈에서는 별도의 __dirname 선언 없이도 바로 사용할 수 있지만, ES 모듈에서는 별도의 선언이 필요하다)

//CommonJS 모듈
const express = require('express');
const path = require('path');

//ES 모듈
import express from 'express';
import path from 'path';

const __dirname = path.resolve();

 

그럼 이제 제목의 경우를 살펴보자.

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

const router = express.Router();
const __dirname = path.resolve();

router.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, '../client/build/index.html'));
});

이렇게 코드를 작성하게 된다면

해당 서버에서 어떤 경로로 요청이 들어오든지 상관없이, 모두 해당 파일이 있는 폴더의 상위 폴더에서 client/build에 있는 index.html을 응답하게 된다.

그렇다. SPA로 연결해줄 때 꼭 써야하는 코드이다.

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Learning-Log > Computer Science' 카테고리의 다른 글

[Ethereum] 이더리움 입문자를 위한 사이트, CryptoZombies  (0) 2023.03.25
[Express.js] Cookie와 Session - BackEnd와 FrontEnd의 통신 수단  (0) 2023.01.20
[WSL] WSL 강제 종료하기  (2) 2022.10.04
Authentication(인증)과 Authorization(인가,권한 부여)에 대하여  (0) 2022.08.24
[CSS] 'autoprefixer: Replace color-adjust to print-color-adjust. The color-adjust shorthand is currently deprecated.' 해결방법 : autoprefixer란 무엇인가  (0) 2022.08.22
'Learning-Log/Computer Science' 카테고리의 다른 글
  • [Ethereum] 이더리움 입문자를 위한 사이트, CryptoZombies
  • [Express.js] Cookie와 Session - BackEnd와 FrontEnd의 통신 수단
  • [WSL] WSL 강제 종료하기
  • Authentication(인증)과 Authorization(인가,권한 부여)에 대하여
Xpectation
Xpectation
理
    반응형
    250x250
  • Xpectation
    자기실현적 기대
    Xpectation
  • 전체
    오늘
    어제
    • 전체보기 (214)
      • Thinking-Log (42)
        • 인간에 관한 생각 (22)
        • 사회현상에 관한 생각 (9)
        • 말씀에 관한 생각 (4)
        • 기타 잡념 (7)
      • Trading-Log (8)
        • 주식 잡념 (9)
      • Learning-Log (104)
        • Computer Science (70)
        • Economics (21)
        • Law (1)
        • ETC (12)
      • Review-Log (43)
        • 食思味 (13)
        • 聽思聰 (6)
        • 視思明 (12)
        • IT 제품, 전자기기 (7)
        • 게임 (0)
        • 기타 (5)
      • Creating-Log (5)
        • 주방 (0)
        • 서재 (5)
        • 기타 (0)
      • Photo-Log (3)
        • 사진 일기 (3)
      • 미분류 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • 티스토리 홈
  • 공지사항

  • 인기 글

  • 태그

    딥러닝
    ASMR
    마인드위즈Pro
    오블완
    경제학
    주식
    수면유도
    클래식음악
    티스토리챌린지
    매매일지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Xpectation
[Express] res.sendFile(path.join(__dirname, '~~'));에 대하여
상단으로

티스토리툴바