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

ㅁㄹ님의 프로필 이미지
ㅁㄹ

작성한 질문수

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

노드 리액트 기초 강의 #31 회원 가입 페이지

Failed to sign up 에러 (register에 대한 success가 계속 false)

작성

·

349

0

강의를 처음부터 지금까지 따라하고있는데, failed to sign up 에러가 납니다.

에러가 어떤 것인지 뭐때문에 success가 안되는지 모르겠습니다 ㅠ

 

아래는 RegisterPage.js 내 onSubmitHandler 코드입니다.

const onSubmitHandler = (event) => {
        event.preventDefault();

        if (password.length < 5) {
            return alert('비밀번호는 5자리 이상이어야 합니다.')
        }

        if (password !== confirmPassword) {
            return alert('비밀번호와 비밀번호 확인은 같아야 합니다.')
        }

        let body = {
            email: email,
            name: name,
            password: password
        }

        dispatch(registerUser(body))
            .then(response => {
                if (response.payload.success) {
                    navigate('/login');
                } else {
                    alert('Failed to sign up');
                    console.log(response)
                }
            })
    }

 

user_actions.js

import axios from 'axios';
import { LOGIN_USER, REGISTER_USER } from './types'

export function registerUser(dataToSubmit) {
    const request = axios.post('/api/users/register', dataToSubmit)
        .then(response => response.data)

    return {
        type: REGISTER_USER,
        payload: request
    }
}

 

user_reducer.js

import { LOGIN_USER, REGISTER_USER } from '../_actions/types';

export default function (state = {}, action) {
    switch (action.type) {
        case LOGIN_USER:
            return { ...state, loginSuccess: action.payload };
        case REGISTER_USER:
            return { ...state, register: action.payload };
        default:
            return state;
    }
}

 

혹시 몰라 server의 index.js 에서 register 부분도 첨부합니다.

app.post('/api/users/register', (req, res) => {
    const user = new User(req.body);
    user.save((err, userInfo) => {
        if (err) return res.json({ success: false, err })
        return res.status(200).json({
            success: true
        })
    })
})

 

이 전 강의까지는 오류 없이 잘 작동했습니다.

postman으로 register 날려보아도 success가 false입니다. 전에는 잘 됐습니다..

success는 false인데 백엔드쪽 터미널에는 또 입력한 회원 정보가 아래 그림처럼 잘 뜹니다.

뭐가 문제일까요?

 

+) 항상 집에서 하다가 오늘 밖에서 했는데 이것때문에 문제가 생긴걸까요? 이전 강의인 login도 어제 집에서 했을땐 잘 됐는데 지금 밖에서 해보니 얘도 안되네요. 만약 그렇다면 어떻게 해결할 수 있을까요?

 

답변 1

0

ㅁㄹ님의 프로필 이미지
ㅁㄹ
질문자

해결했습니다. 밖에서 하니 ip 주소가 바뀌어서 mongoDB가 연결되지 않은 게 문제였습니다.

https://www.inflearn.com/questions/29435

참고한 해결법 사이트 첨부합니다 :)

ㅁㄹ님의 프로필 이미지
ㅁㄹ

작성한 질문수

질문하기