inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue로 Nodebird SNS 만들기

5-4. 이미지 저장하기

이미지 업로드가 안돼서 질문드립니다

223

문종현

작성한 질문수 28

0

5-4 강의 마지막에 제로초님은 설정한대로 사진 2개 3개 업로드가 되는데 

errors: [

    ValidationErrorItem {

      message: 'Image.email cannot be null',

      type: 'notNull Violation',

      path: 'email',

      value: null,

      origin: 'CORE',

      instance: [Image],

      validatorKey: 'is_null',

      validatorName: null,

      validatorArgs: []

    }

  ]

}

SequelizeValidationError: notNull Violation: Image.email cannot be null

    at InstanceValidator._validate (C:\Users\com\vue강좌\vuesns\ch1\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강좌\vuesns\ch1\back\node_modules\sequelize\lib\instance-validator.js:111:7)

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

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

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

    at async Promise.all (index 0)

    at async C:\Users\com\vue강좌\vuesns\ch1\back\routes\post.js:46:32

POST /post 500 17.596 ms - 1119

이러한 업로드가 떠서 더이상 진행이 되지 않아 질문드려요 

ch1\back\routes\post.js:46:32

이부분에 오류인거 같아 확인해보았는데

if(req.body.image) {
            if(Array.isArray(req.body.image)) {
                const images = await Promise.all(req.body.image.map((image=> {
                    return db.Image.create({ srcimagePostIdnewPost.id })
                }))
            } else {
                const image = await db.Image.create({ srcreq.body.imagePostIdnewPost.id})
            }
       }

정확히는 const images 의 await바로 앞입니다.

어떤부분이 잘못된지 모르겠어 제로초님의 코드랑 비교해봤는데 답이 나오지 않아 질문드려요 ㅜ

mysql nodejs vuejs vuex aws ssr

답변 1

0

제로초(조현영)

에러메시지에 image.email이라고 되어있는데요. image 테이블에는 email 컬럼이 있으면 안 되는데 뭔가 잘못 들어간 것 같습니다. 워크벤치 같은 걸로 email 컬럼이 진짜 들어가있는지 확인해보세요. 있다면 image 테이블 지웠다가 서버 재시작해서 재생성하셔야 합니다.

0

문종현

피드백 감사합니다

제로초님 말씀데로 워크벤치 들어가 보니 email이 있어서 그거 지우고 다시 시작했더니 

sql: 'SELECT `Post `.`id`, `Post `.`content`, `Post `.`createdAt`, `Post `.`updatedAt`, `Post `.`UserId`, `User`.`id` AS `User.id`, `User`.`nickname` AS `User.nickname`, `Images`.`id` AS `Images.id`, `Images`.`email` AS `Images.email`, `Images`.`createdAt` AS `Images.createdAt`, `Images`.`updatedAt` AS `Images.updatedAt`, `Images`.`PostId` AS `Images.PostId` FROM `Post s` AS `Post ` LEFT OUTER JOIN `Users` AS `User` ON `Post `.`UserId` = `User`.`id` LEFT OUTER JOIN `Images` AS `Images` ON `Post `.`id` = `Images`.`PostId` WHERE `Post `.`id` = 4;',

  parameters: undefined

}

SequelizeDatabaseError: Unknown column 'Images.email' in 'field list'

    at Query.formatError (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\query.js:265:16)

    at Query.run (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\query.js:77:18)

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

    at async C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\sequelize.js:619:16

    at async MySQLQueryInterface.select (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:953:12)

    at async Function.findAll (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:1753:21)

    at async Function.findOne (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:1917:12)

    at async C:\Users\com\vue강좌\vuesns\ch1\back\routes\post.js:53:26

POST /post 500 38.737 ms - 1181

이러한 에러가 뜹니다 ㅜ 어떻게 해야 할까요??

0

문종현

SequelizeDatabaseError: Unknown column 'Images.email' in 'field list'

    at Query.formatError (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\query.js:265:16)

    at Query.run (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\query.js:77:18)

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

    at async C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\sequelize.js:619:16

    at async MySQLQueryInterface.select (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:953:12)

    at async Function.findAll (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:1753:21)

    at async C:\Users\com\vue강좌\vuesns\ch1\back\routes\posts.js:12:23
새로고침 하면 이러한 에러가 뜨는데 

    at async C:\Users\com\vue강좌\vuesns\ch1\back\routes\posts.js:12:23

이부분은 

router.get('/'async (reqres ,next=> {
    try {
        const posts = await db.Post.findAll({
            include: [{
                modeldb.User,
                attributes: ['id''nickname']
            }, {
                modeldb.Image
            }],
            order: [['createdAt''DESC']],
            offsetparseInt(req.query.offset10|| 0,
            limitparseInt(req.query.limit10|| 10,
        })
        res.json(posts)
    } catch (err) {
        console.error(err)
        next(err)
    }
})

여기서 const posts 뒤 await 바로 앞 자리 입니다 ㅜ

0

제로초(조현영)

models/image.js에서 image 모델 안에 email이 들어있는 거 아닌가요?

0

문종현

감사합니다!!

오타가 있어서 수정했습니다

근데 수정했더니 ㅜ 

SequelizeDatabaseError: Unknown column 'src' in 'field list'

    at Query.formatError (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\query.js:265:16)

    at Query.run (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\query.js:77:18)

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

    at async C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\sequelize.js:619:16

    at async MySQLQueryInterface.insert (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:749:21)

    at async model.save (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:3967:35)

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

    at async Promise.all (index 0)

    at async C:\Users\com\vue강좌\vuesns\ch1\back\routes\post.js:46:32

POST /post 500 21.065 ms - 1213

이번엔 이런 에러가 뜨는데 어떻게 해결해야하는지 질문할수 있을까요??ㅜㅜ

0

제로초(조현영)

unknown column 'x' 가 뭘 의미하시는지를 찾아보시는 게 좋을 것 같습니다. 안 그러면 같은 유형의 에러가 계속 생길때마다 질문하시게 될테니까요. 시퀄라이즈에서는 src가 있는 걸로 치는데 실제 db에는 없다는 뜻입니다. 왜  시퀄라이즈에는 src가 있고, 실제 db에는 src가 없는지 확인해보세요.

0

문종현

아 제로초님 감사합니다!!! 서버 재시작 후 완료 하였습니다!! 피드백 감사합니다!!!

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

495

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

393

1

nuxtServerInit 무한 로딩

0

986

3

Nginx Cookie 설정

0

736

2

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

0

301

1

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

0

357

1

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

0

386

1

질문 드립니다!

0

335

2

안녕하세요

0

231

1

궁금한점이있습니다

0

241

1