inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue로 Nodebird SNS 만들기

4-6. cors와 bcrypt

500 status

359

문종현

작성한 질문수 28

0

안녕하세요 강사님
회원가입 후에 user stauts 500으로 떠서 무엇이 문제인지 모르겠어서 질문드려요
회원가입을하면 터미널에서 이상한 오류?가 뜹니다

ValidationError [SequelizeValidationError]: notNull Violation: User.email cannot be null,

notNull Violation: User.nickname cannot be null,

notNull Violation: User.password cannot be null

    at InstanceValidator._validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:78:13)

    at processTicksAndRejections (internal/process/task_queues.js:93:5)

    at async InstanceValidator._validateAndRunHooks (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:111:7)

    at async InstanceValidator.validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:93:12)

    at async model.save (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:3890:7)

    at async Function.create (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:2207:12)

    at async C:\Users\com\vue강좌\복습\back\app.js:18:25 {

  errors: [

    ValidationErrorItem {

      message: 'User.email cannot be null',

      type: 'notNull Violation',

      path: 'email',

      value: null,

      origin: 'CORE',

      instance: [User],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    },

    ValidationErrorItem {

      message: 'User.nickname cannot be null',

      type: 'notNull Violation',

      path: 'nickname',

      value: null,

      origin: 'CORE',

      instance: [User],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    },

    ValidationErrorItem {

      message: 'User.password cannot be null',

      type: 'notNull Violation',

      path: 'password',

      value: null,

      origin: 'CORE',

      instance: [User],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    }

  ]

}

SequelizeValidationError: notNull Violation: User.email cannot be null,

notNull Violation: User.nickname cannot be null,

notNull Violation: User.password cannot be null

    at InstanceValidator._validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:78:13)

    at processTicksAndRejections (internal/process/task_queues.js:93:5)

    at async InstanceValidator._validateAndRunHooks (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:111:7)

    at async InstanceValidator.validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:93:12)

    at async model.save (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:3890:7)

    at async Function.create (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:2207:12)

    at async C:\Users\com\vue강좌\복습\back\app.js:18:25

ValidationError [SequelizeValidationError]: notNull Violation: User.email cannot be null,

notNull Violation: User.nickname cannot be null,

notNull Violation: User.password cannot be null

    at InstanceValidator._validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:78:13)

    at processTicksAndRejections (internal/process/task_queues.js:93:5)

    at async InstanceValidator._validateAndRunHooks (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:111:7)

    at async InstanceValidator.validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:93:12)

    at async model.save (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:3890:7)

    at async Function.create (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:2207:12)

    at async C:\Users\com\vue강좌\복습\back\app.js:18:25 {

  errors: [

    ValidationErrorItem {

      message: 'User.email cannot be null',

      type: 'notNull Violation',

      path: 'email',

      value: null,

      origin: 'CORE',

      instance: [User],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    },

    ValidationErrorItem {

      message: 'User.nickname cannot be null',

      type: 'notNull Violation',

      path: 'nickname',

      value: null,

      origin: 'CORE',

      instance: [User],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    },

    ValidationErrorItem {

      message: 'User.password cannot be null',

      type: 'notNull Violation',

      path: 'password',

      value: null,

      origin: 'CORE',

      instance: [User],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    }

  ]

}

SequelizeValidationError: notNull Violation: User.email cannot be null,

notNull Violation: User.nickname cannot be null,

notNull Violation: User.password cannot be null

    at InstanceValidator._validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:78:13)

    at processTicksAndRejections (internal/process/task_queues.js:93:5)

    at async InstanceValidator._validateAndRunHooks (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:111:7)

    at async InstanceValidator.validate (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\instance-validator.js:93:12)

    at async model.save (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:3890:7)

    at async Function.create (C:\Users\com\vue강좌\복습\back\node_modules\sequelize\lib\model.js:2207:12)

    at async C:\Users\com\vue강좌\복습\back\app.js:18:25

이러한 글이 뜹니다.

nodejs mysql aws vuejs vuex ssr

답변 2

0

문종현

0

제로초(조현영)

에러 메시지를 번역기 돌려보세요. user의 email이 null이 되면 안 된다고 뜹니다. 지금 프론트에서 서버로 데이터를 보내는 과정 중 어딘가에서 email이 null이 되었을 겁니다.

0

문종현

답변 감사합니다!!
4.4 강의 영상 10분가량 에 요청 보내는거 까지 확인 됩니다. 그 이후 부터 다시 들어보며 하고 있는데 똑같이 email이 null 이라 뜨는데 뭐가 잘못된건지 모르겠습니다 ㅜ 혹시 제 코드중에 잘못된 곳이 있을까요??

0

문종현

app.post('/user'async (reqresnext=> {
    try {
        const newUser = await db.User.create({
            where: {
                emailreq.body.email,
                passwordreq.body.password,
                nicknamereq.body.nickname,
            }
        })
        res.status(201).json(newUser);
    } catch (err) {
        console.log(err)
        next(err)
    }
    
})

이 부분에서 where를 삭제하니까 되는거 같습니다. network 확인해보니 post는 201이라고는 뜨는데

맞는걸까요?? 강의 보면 노란색 글씨로 where 넣으라고 했는데 

0

제로초(조현영)

create는 where 넣으면 안 됩니다.

0

문종현

예 감사합니다!!^^

0

문종현

app.js

const express = require('express');
const cors = require('cors')
const db = require('./models')
const app = express();

db.sequelize.sync();

app.use(cors('http://localhost:3000'))
app.use(express.json())
app.use(express.urlencoded({ extendedfalse }))

app.get('/', (reqres=> {
    res.status(200).send('Hello backend')
})

app.post('/user'async (reqresnext=> {
    try {
        const newUser = await db.User.create({
            where: {
                nicknamereq.body.nickname,
                emailreq.body.email,
                passwordreq.body.password,
            }
        })
        res.status(201).json(newUser);
    } catch (err) {
        console.log(err)
        next(err)
    }
    
})

app.listen(3085, () => {
    console.log(`백엔드 서버 ${3085}번 포트에서 작동중`)
})

user.js

module.exports = (sequelizeDataTypes=> {
    const User = sequelize.define('User', {
        email: {
            typeDataTypes.STRING(40),
            allowNullfalse,
        },
        nickname: {
            typeDataTypes.STRING(20),
            allowNullfalse,
        },
        password: {
            typeDataTypes.STRING(100),
            allowNullfalse,
        },
    }, {
        charset'utf8',
        collate'utf8_general_ci'
    })
    User.associate = (db=> {

    }
    return User
}

front의 signup.vue

methods: {
        onSubmitForm() {
            if(this.$refs.form.validate()) {
                this.$store.dispatch('users/signUp', {
                    nicknamethis.nickname,
                    emailthis.email,
                    passwordthis.password
                })
                .then(() => {
                    this.$router.push({
                    path'/'
                });
                })
                .catch(() => {
                    alert('회원가입 실패')
                })
            } 
        }
   },

front의 user.js

signUp({commitstate}, payload) {
        this.$axios.post('http://localhost:3085/user', {
            nicknamepayload.nickname,
            emailpayload.email,
            passwordpayload.password,
        });
        commit('setMe'payload)
   },

npm run dev 할 때 에러가 발생합니다.

0

156

1

해당 강의는 리뉴얼 예정은 따로 없나요?

0

341

1

강의는 언제까지 업데이트 된 내용인가요?

0

339

2

실습 환경 문의(Node 버전)

0

376

1

로그인 새로고침시 풀림

0

304

1

안녕하세요! 로그인 유지 질문 드립니다!

0

413

1

웹 서버 관련해서 질문드립니다.

0

450

1

버전때매 질문 드립니다!!

0

319

1

이 강의는 vue3는 아닌가요??

0

380

1

vsCode에 관한 질문입니다

0

494

1

v.trim()이 타입에러가 뜹니다...

0

348

1

express.static('uploads')

0

351

2

STRING이 인식이 안되는데 이유알수있을까요?

0

455

2

<v-lsit-item-title> 에러

0

416

2

vue cli 를 실무에서도 사용하지 않으시나요?

0

326

1

선생님 처음 환경 셋팅 관련 문의드립니다.

0

392

1

nuxtServerInit 무한 로딩

0

985

3

Nginx Cookie 설정

0

735

2

상태가 204번인경우에는 어떻게 처리를 해야하나요?

0

301

1

선생님 nuxt 관련질문드립니다.

0

357

1

인덱스 비교로 삭제해도 될까요?

0

386

1

질문 드립니다!

0

335

2

안녕하세요

0

231

1

궁금한점이있습니다

0

241

1