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 |