inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

back에서 자꾸 userId를 읽을 수 없다고 뜨는데 왜 그런가요?

351

learn

작성한 질문수 12

0

프론트에서 로그인하면 SUCCESS까지 뜨는데 back에서는 DB에 사용자가 추가되지 않았어요 이렇게 에러가 떠서 뭐가 잘못된 걸까요? 

ragas/userex.js

function* signUpAPI(signUpData) {
    //서버에 요청을 보내는 부분 
    return axios.post('http://localhost:3065/api/user/'signUpData);
    // return axios.post('/login');
}
function* signUp(action) {
    try {
        //call은 동기 호출 응답받을 때까지 기다림
        // yield delay(2000);

        yield call(signUpAPIaction.data);
        // throw new Error('에러에러에러');
        yield put({
            //put은 dispatch랑 동일
            type: SIGN_UP_SUCCESS
        });
    } catch (e) {
        //loginAPI 실패 
        console.error(e);
        yield put({
            type: SIGN_UP_FAILURE,
            error: e,
        })
    }
}


function* watchSignUp() {
    yield takeEvery(SIGN_UP_REQUESTsignUp);
    // yield delay(2000);
    //리스너 역할
    // 비동기 요청, 타이머 넣어도 되고 
}
pages/signup.js에 있는 onSubmit 함수
    const onSubmit = useCallback((e=> {
        e.preventDefault();
        if (password !== passwordCheck) {
            return setPasswordError(true);
        }
        if (!term) {
            return setTermError(true);
        }
        if (!agree) {
            return setAgreeError(true);
        }
        // dispatch(signUpAction({
        //     userId: id,
        //     userPassword: password,
        //     userName: name,
        //     // major,

        // }));
        return dispatch({
            type: SIGN_UP_REQUEST,
            data: {
                userId: id,
                userPassword: password
                userName: name,
            },
        });

        // console.log({
        //     id, name, birth, entergrade, major, nowstate, password, passwordCheck, term, agree
        // });
    }, [idnamepasswordpasswordChecktermagree]);
reducers/userex.js에서 SIGNUP 부분
        case SIGN_UP_REQUEST: {
            return {
                ...state,
                isSigningUp: true,
                isSignedUp: false,
                signUpErrorReason: '',
            }
        }
        case SIGN_UP_SUCCESS: {
            return {
                ...state,
                isSigningUp: false,
                isSignedUp: true,
            }
        }
        case SIGN_UP_FAILURE: {
            return {
                ...state,
                isSigningUp: false,
                signUpErrorReason: action.error,
            }
       }

javascript react

답변 7

0

제로초(조현영)

db.sequelize.sync().catch(console.error)으로 한 번 바꿔보세요. 이 이외에는 에러날 곳은 없어보입니다.

0

learn

const express = require('express');
const morgan = require('morgan');
const cors = require('cors');

const db = require('./models');
const userAPIRouter = require('./routes/user');
const plannerAPIRouter = require('./routes/planner');

const app = express();
db.sequelize.sync();    //알아서 테이블 생성 

app.use(morgan('dev')); //미들웨어 

app.use(express.json());
app.use(express.urlencoded({extended: true}));
app.use(cors());

//API는 다른 서비스가 내 서비스의 기능을 실행할 수 있게 열어둔 창구 
app.use('/api/user'userAPIRouter);
app.use('/api/planner'plannerAPIRouter);

app.get('/', (reqres=> {
    res.send('Hello, server');
});
app.get('/about', (reqres=> {
    res.send('Hello, about');
});

app.listen(3065, () => {
    console.log(`server is running on localhost:3065`);
});
이렇게 되어 있는데 router는 빼먹은 건가요?

0

제로초(조현영)

혹시 router(app.use(주소, router))가 app.use보다 더 위에 연결되어 있나요? express.json과 urlencoded가 더 위에 있어야 합니다.

0

learn

back/index.js에
app.use(express.json());
app.use(express.urlencoded({extended: true}));
이부분은 넣어져있는데 다른 부분도 살펴봐야되나요?

0

제로초(조현영)

req.body가 undefined라면 express.json이나 express.urlencoded 미들웨어를 넣지 않으신 것 같습니다.

0

learn

const express = require('express');
const bcrypt = require('bcrypt');
const passport = require('passport');
const db = require('../models');    //db안에 User를 연결해놨기 때문에 쓸 수 있음 
const router = express.Router();

router.get('/', (reqres=> { //사용자 정보를 가져옴 

});
router.post('/'async (resreqnext=> {    //POST/api/user 회원가입 사용자 등록 
    //요청에 헤더, 본문을 같이 보낼 수 있음 
    //본문에 데이터를 넣어서 보냄 
    try {
        const exUser = await db.User.findOne({
            where: {
                userId: req.body.userId,
            },
        });
        if (exUser) {
            //400~599
            return res.status(403).send('이미 사용중인 아이디입니다.');
            //send는 문자열을 보냄 
        }
        const hashedPassword = await bcrypt.hash(req.body.userPassword12);
        const newUser = await db.User.create({
            userName: req.body.userName,
            userId: req.body.userId,
            userPassword: hashedPassword,
        });
        console.log(newUser);
        return res.status(200).json(newUser);
    } catch (e) {
        console.error(e);
        // return res.status(403).send(e);
        //에러처리 후 
        return next(e);
    }
});

router.get('/:id', (reqres=> {    //남의 정보 가져오는 것 ex) /3

})

router.post('/logout', (resreq=> {

});

router.post('/login', (resreq=> {

});
router.get('/:id/follow', (reqres=> {

});
router.post('/:id/follow', (reqres=> {

});
router.delete('/:id/follow', (reqres=> {

});
router.post('/:id/follower', (reqres=> {

});

module.exports = router;
routes/user.js는 이렇게 적었습니다!

0

제로초(조현영)

back에서 routes/user.js를 보여주셔야 합니다.

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

482

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

447

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

434

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

975

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1