app.get('/welcome', (req: Request, res: Response, next: NextFunction)=>{
res.writeHead(200, {'Content-Type': 'text/plain'})
res.end(JSON.stringify({hello: 'zerocho'}));
});
노드에서 json 으로 보낼 때는 다음과 같았다.
하지만 express 에서는
app.get('/welcome', (req: Request, res: Response, next: NextFunction)=>{
res.json({hello: 'zerocho'});
});
이렇게 줄여준다.
express 의 방식으로 실행 결과, 네트워크 탭을 보자.
app.use((req:Request, res:Response, next: NextFunction)=>{
console.log('1: 모든 곳에 실행하고 싶어요!');
next();
}, (req: Request, res: Response, next:NextFunction)=>{
try {
throw new Error('에러야!!!');
} catch (error) {
next(error); // next 안에 인자가 있으면 바로 에러처리 미들웨어로 넘어간다.
}
})
app.use((req:Request, res:Response, next:NextFunction)=>{
res.status(200).send('404지롱');
})
app.use((err:Error, req: Request, res: Response, next: NextFunction)=>{
console.error(err);
res.send('에러났지롱. 근데 안알려주지롱');
})
next 안에 인자가 있으면 바로 에러처리 미들웨어로 넘어간다.
-> 에러났지롱. 근데 안알려주지롱 실행
이렇게 next('route') 넣을 시에는
다음 라우터가 실행된다. 즉 app.get... 이 부분이 실행
그럼 console.log('실행되나요?') 왜 써줌???
if 문 안이 true 이면 다음 라우터 (실행되지롱) 실행
if 문 안이 false 이면 else 문이 실행되면서 (실행되나요?) 실행
'🌿 Node' 카테고리의 다른 글
prisma migration (0) | 2022.05.14 |
---|---|
commonJs 가 뭔데... (1) | 2022.02.21 |
espress 기초 다지기 - 미들웨어편 (0) | 2022.02.20 |
express 파일 구조와 몽고 디비 (0) | 2022.02.16 |
노드 이해하기2 (1) | 2022.02.13 |