DOC 정의

이 속성을 사용하여 res.render로 렌더링된 템플릿에서 액세스할 수 있는 변수를 설정합니다. res.locals에 설정된 변수는 단일 요청-응답 주기 내에서 사용할 수 있으며 요청 간에 공유되지 않습니다.

요청 간 템플릿 렌더링에 사용할 로컬 변수를 유지하려면 대신 app.locals를 사용하세요.

이 속성은 요청 경로 이름, 인증된 사용자, 사용자 설정 등과 같은 요청 수준 정보를 응용 프로그램 내에서 렌더링되는 템플릿에 노출하는 데 유용합니다.

사용해보기

// middlewares/ auth-middleware
// JWT 토큰 확인
        const { userId } = await jwt.verify(authToken, process.env.SECRET_KEY);
        const user = await User.findById(userId);
        // user로 저장하기
        res.locals.user = user;
        next();
// routes/post.js
router.put('/:postId', authMiddleware, async (req, res) => {
    try {
        const { postId } = req.params;
        const { userId } = res.locals.user;
        const { postTitle, postContent } = req.body;

코드를 보면, middleware에서 res.locals로 저장한 데이터를 router.put에서 미들웨어에서 받아 진행이 가능하다.

이 속성은 Server 내에서 단일 요청-응답 주기 내에서만 사용이 가능하고, 공유되지 않기에 보안 상 사용해야 할 경우를 잘 판단해서 작성하자.

참조