728x90
반응형
SMALL
✅ 파일이 없는 경우 에러가 발생 ➡️ 오류처리 방법 4가지 알아보기!
import express from 'express'
import fs from 'fs'
import fsAsync from 'fs/promises' //promise객체임
const app = express();
app.use(express.json());
1️⃣ readFile(): 비동기식 파일읽기 오류처리
app.get('/file1', (req, res) => {
fs.readFile('./file1.txt', (err, data)=> {
if(err){
//res.status().send()와 같이 동작하지만, 코드와 상태 메시지를 한 번에 설정할 수 있다는 점에서 차이가 있음
res.sendStatus(404) // 페이지가 없음을 보냄 (Not Found)
}
})
})
app.listen(9090)
2️⃣ readFileSync(): 동기식으로 파일을 읽어옴 ➡ 'try-catch'블록 사용
app.get('/file2', (req, res) => {
try{
const data = fs.readFileSync('./file2.txt')
}catch(error){
res.sendStatus(404)
}
})
app.listen(9090)
3️⃣ fsAsync readFile(): 비동기식 파일 읽기
app.get('/file3', (req, res) => {
fsAsync
.readFile('/file3.txt')
.catch((error) => {
res.sendStatus(404)
})
})
app.listen(9090)
4️⃣ 동기식문법을 사용하여 비동기 처리 ➡ 'try-catch'블록 사용
app.get('/file4', async (req, res) => {
try{
const data = await fsAsync.readFile('/file4.txt')
}catch(error){
res.sendStatus(404)
}
})
app.listen(9090)
✅서버 에러 처리
app.use((error, req, res, next) => {
console.error(error)
res.status(500).join({message: '서버 에러!'}) // 500번대: 서버에러(서버에러는 최후의 수단으로 나오는것이고 미들웨어로 404번으로 처리해주는것이 통상적)
})
app.listen(9090)
728x90
반응형
LIST
'Web > Nodejs' 카테고리의 다른 글
[Node.js] router 2️⃣ (0) | 2023.04.30 |
---|---|
[Node.js] router 1️⃣ (0) | 2023.04.30 |
[Node.js] express - 2️⃣ post() (0) | 2023.04.30 |
[Node.js] express - 1️⃣get() (0) | 2023.04.30 |
[Node.js] REST API - express 프레임워크 (0) | 2023.04.30 |