런타임 이해
Node는 단일 스레드 이벤트 루프와 비동기 I/O로 많은 대기 작업을 효율적으로 다룹니다.
runtimeNode.js는 브라우저 밖에서 JavaScript를 실행하는 런타임이고, Express는 HTTP 요청을 라우트와 미들웨어 체인으로 처리하는 프레임워크입니다. 핵심은 한 요청이 어떤 미들웨어를 거쳐 응답으로 끝나는지 읽는 것입니다.
Node는 단일 스레드 이벤트 루프와 비동기 I/O로 많은 대기 작업을 효율적으로 다룹니다.
runtimeapp.use와 route handler는 등록 순서대로 실행되며 req, res, next를 통해 흐름을 넘깁니다.
처리 흐름HTTP method와 path가 맞는 handler에서 요청 값을 읽고 상태 코드와 body를 명확히 보냅니다.
route비동기 handler의 오류를 next나 wrapper로 error middleware에 전달해야 요청이 멈추지 않습니다.
errorapp.get('/users/:id', asyncHandler(async (req, res) => {
const user = await loadUser(req.params.id);
res.json(user);
overflow-wrap: break-word;
word-break: keep-all;
}));
app.use((err, req, res, next) => {
res.status(500).json({ message: 'server error' });
});