작성
·
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
참고한 해결법 사이트 첨부합니다 :)