인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

으하핳님의 프로필 이미지
으하핳

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #22 CORS 이슈, Proxy 설정

프록시 타켓 설정 관련

작성

·

153

0

setupProxy.js
module.exports = function (app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:5000',
changeOrigin: true,
})
);
};
1.위의 코드가 의미하는 게 /api요청이 들어오면 /api를 target에
해당하는 주소로 바꿔준다고 보면 될까요?
user_action.js
export default async function logginUser(dataToSumbit) {
const request=await
Axios.post('/api/users/login',dataToSumbit)
}
app.js
app.post('/api/users/login',(req,res)=>{
User.findOne({email:req.body.email},(err,user)=>{
if (!user) {
return res.json({
loginSuccess : false,
message:'제공된 이메일에 해당되는 유저가 없습니다.'
})
}
2. 1번이 맞다면 제가 post요청한 url => /api/users/login은
프록시 미들웨어를 거쳐서 서버가 인식할때에는
http://localhost:5000/users/login으로 바뀌어서
app.post에 전달되는 건지 궁금합니다.
퀄리티 높은 강의에 항상 감사하다는 말씀 드리고 싶습니다!화이팅!

답변 2

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

1.      저희가 요청을 보낼때  /api/user/   ,  /api/comment    , /api ~ 이런식으로 먼저 api를 먼저 붙인다음에 서버에 보내자나요 

그래서   api로 요청이 들어오면 그걸   localhost:5000번으로 보내주라는 것입니다 ~ 

2. api 붙어서 전달됩니다.  그러기에  localhost:5000/api/users/login 으로 받게 됩니다.

하지만  가끔 보면   Nginx 설정을 통해서   api를 빼고  보내시는 분도 봤습니다. 

location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://api;
} 

이런식으로 하면 api가  지워집니다 ~ 

수고하세요 ^^ 

0

으하핳님의 프로필 이미지
으하핳
질문자

감사합니다!

으하핳님의 프로필 이미지
으하핳

작성한 질문수

질문하기