만약 404 에러가 발생한다면 res.locals.message는 `${req.method} ${req.url} 라우터가 없습니다.`가 됩니다. next(error)에서 넘겨준 인수가 에러 처리 미들웨어의 err로 연결되기 때문입니다.
에러 처리 미들웨어는 error라는 템플릿 파일(넌적스이므로 error.html 파일)을 렌더링합니다. 렌더링 시 res.locals.message와 res.locals.error에 넣어준 값을 함께 렌더링합니다. res.render에 변수를 대입하는 것 외에도, 이렇게 res.locals 속성에 값을 대입해 템플릿 엔진에 변수를 주입할 수 있습니다.
error 객체의 스택 트레이스(error.html의 error.stack)는 시스템 환경(process.env.NODE_ENV)이 production(배포 환경)이 아닌 경우에만 표시됩니다. 배포 환경인 경우에는 에러 메시지만 표시됩니다. 에러 스택 트레이스가 노출되면 보안에 취약할 수 있기 때문입니다.