• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

app.use와 req.url

22.01.03 16:57 작성 조회수 261

0

 안녕하세요 조현영님 

  이번에는 req.url과 app.use의 관계에 대해서 질문해봅니다.

app.use("/test", (req, res, next) => {
    if (req.method === "GET") {
        console.log(`${req.url} 디렉터리에 ${req.method}요청이 들어왔습니다!`);
        next();
    } else if (req.method === "POST") {
        console.log(`${req.url} 디렉터리에 ${req.method}요청이 들어왔습니다!`);
        next();
    } else if (req.method === "PUT") {
        console.log(`${req.url} 디렉터리에 ${req.method}요청이 들어왔습니다!`);
        next();
    }
});

app.route("/test")
    .get((req, res) => {
        res.send("Hello get request!");
        console.log(req.url);
    })
    .post((req, res) => {
        res.send("Hello post request!");
        console.log(req.url);
    })
    .put((req, res) => {
        res.send("Hello put request!");
        console.log(req.url);
    });

app.use("/test", ...) 미들웨어로 "/test" 요청이 발생할 때마다 req.url , req.method 객체를 사용해서 요청받은 주소 그리고 요청 메서드 형태를 출력하는 분기문을 만들었습니다. 그리고 밑에는 app.route("/test", ...) 미들웨어로 "/test"에 대한 get,post,put 메서드를 나누었습니다. 그런데 app.use()에서 req.url을 출력할때 /test가 아닌 /가 출력됩니다. /test로 출력하게 하려면 어떻게 해야 하나요?

답변 2

·

답변을 작성해보세요.

0

이승훈님의 프로필

이승훈

질문자

2022.01.03

위에서 부터 GET, POST, PUT 으로 요청을 보냈습니다.

위 사진은 포스트맨이라는 프로그램으로 GET, POST, PUT 요청을 보냈습니다.

app.use는 req.url을 자기맘대로 바꿔버립니다. req.originalUrl 써보세요.

이승훈님의 프로필

이승훈

질문자

2022.01.04

되네요 감사합니다!

0

음? 전체 콘솔로그 한 번 올려주세요.