인프런 커뮤니티 질문&답변

Stella님의 프로필 이미지

작성한 질문수

프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2

3-7) 캐시 최적화

npm run serve가 동작하지 않아요

해결된 질문

23.07.28 09:47 작성

·

483

0

3-7) 캐시 최적화를 듣고 있습니다.
npm run serve가 동작하지 않네요.

npm run build
npm run serve
의 순서로 실행했습니다.


에러 코드는 아래와 같습니다.
> lecture-3@0.1.0 serve

> node ./server/server.js

node:events:490

throw er; // Unhandled 'error' event

^

Error: listen EADDRINUSE: address already in use :::5000

at Server.setupListenHandle [as _listen2] (node:net:1774:16)

at listenInCluster (node:net:1822:12)

at Server.listen (node:net:1910:7)

at Function.listen (/Users/stellamax/Desktop/study/optimizing/node_modules/express/lib/application.js:618:24)

at Object.<anonymous> (/Users/stellamax/Desktop/study/optimizing/server/server.js:20:5)

at Module._compile (node:internal/modules/cjs/loader:1275:14)

at Module._extensions..js (node:internal/modules/cjs/loader:1329:10)

at Module.load (node:internal/modules/cjs/loader:1133:32)

at Module._load (node:internal/modules/cjs/loader:972:12)

at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)

Emitted 'error' event on Server instance at:

at emitErrorNT (node:net:1801:8)

at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {

code: 'EADDRINUSE',

errno: -48,

syscall: 'listen',

address: '::',

port: 5000

}

클론 받은 코드는 아래와 같습니다.const express = require('express')
const app = express()
const port = 5000
const path = require('path')


const header = {
    setHeaders: (res, path) => {
        res.setHeader('Cache-Control', 'private, no-cache, no-store, must-revalidate')
        res.setHeader('Expires', '-1')
        res.setHeader('Pragma', 'no-cache')
    },
}

app.use(express.static(path.join(__dirname, '../build'), header))
app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, '../build/index.html'))
})

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

 

답변 1

0

유동균님의 프로필 이미지
유동균
지식공유자

2023. 07. 28. 09:53

안녕하세요, Stella님

다음 에러 메시지릉 봤을 때, 이미 5000번 포트가 사용 중이라 문제가 되는거 같습니다.
Error: listen EADDRINUSE: address already in use :::5000

해결 방법으로는,

  • 5000번에서 돌고있는 서버를 종료하기 (검색을 해보시면 특정 포트로 돌고있는 서비스의 PID를 알아내서 강제로 종료하는 명령어가 있습니다.)

  • 아니면, server.js 코드 중에 port라는 값을 5000이 아니라 5001 또는 그 외 중복되지 않는 숫자로 변경하기

위 방법으로 해결되지 않는다면 다시 알려주시기 바랍니다.

그럼 답변이 도움되셨길 바라며, 강의에 관심을 가져주셔서 감사합니다. :)

Stella님의 프로필 이미지

작성한 질문수

질문하기