🌿 Node

express 공부

ji-hyun 2022. 2. 20. 20:18
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