저장을 습관화
에러 기록 - TypeError: Cannot read properties of undefined (reading 'create') 본문
에러 기록 - TypeError: Cannot read properties of undefined (reading 'create')
ctrs 2023. 6. 29. 00:08- 증상
게시글 작성 API 테스트 중 post가 되지 않는 상황
관련 로그
const post = await Post.create({ title, content, password });
^
TypeError: Cannot read properties of undefined (reading 'create')
at C:(생략)\routes\posts.js:51:27
at Layer.handle [as handle_request] (C:(생략)\node_modules\express\lib\router\layer.js:95:5)
at next (C:(생략)\node_modules\express\lib\router\route.js:144:13)
at Route.dispatch (C:(생략)\node_modules\express\lib\router\route.js:114:3)
at Layer.handle [as handle_request] (C:(생략)\node_modules\express\lib\router\layer.js:95:5)
at C:(생략)\node_modules\express\lib\router\index.js:284:15
at Function.process_params (C:(생략)\node_modules\express\lib\router\index.js:346:12)
at next (C:(생략)\node_modules\express\lib\router\index.js:280:10)
at Function.handle (C:(생략)\node_modules\express\lib\router\index.js:175:3)
at router (C:(생략)\node_modules\express\lib\router\index.js:47:12)
Node.js v18.16.0
- 원인
/routes/posts.js가 참조하고 있는 /models/post.js의 내용을 임의로 수정해서 발생한 문제
mySQL+sequelize 환경에서
/models의 내용은 migration 폴더의 내용에 따라 적용되고, 이 내용은 즉 DB의 내용임
하지만 내가 /routes/posts.js로 post하는 테이블 컬럼의 내용을 멋대로 작성하고,
이 내용을 꾸역꾸역 입력하기 위해 /models/post.js의 내용도 수정하자
시스템이 '너가 무슨 models를 참조하고 싶은건지 모르겠어 그런 컬럼 없는데?' 하면서 require도 끊어버림
post 명령이 수행되기 전 consoloe.log(Post)를 해보면 undefined가 나옴
Post가 어떤 변수인지 알지못하니 메소드 .create()도 어떤 함수인지 시스템이 알 수 없어 발생한 에러
※ /routes의 내용은 /models를 따라가야지 그 반대가 되어선 안된다.
마치 예전에 mongoDB+mongoose에서 scheema의 내용을 임의로 변경해서 발생했던 때와 같은 개념
에러 기록 - MongoServerError: E11000 duplicate key error
1. 증상 mongoose를 이용하여 MongDB에 POST할 경우 발생 app.js의 실행을 강제적으로 종료시킴 에러 로그는 아래와 같음 C:(생략)\node_modules\mongodb\lib\operations\insert.js:50 return callback(new error_1.MongoServerError(r
ctrs.tistory.com
- 해결 방법
/models/post.js의 내용을 수정 전으로 되돌렸고
post의 테스트는 /models/post.js의 내용에 맞추어 /routes/posts.js의 내용을 조정하여 진행함
'공부 > node.js' 카테고리의 다른 글
게시글 조회 API 작성 중 "404 존재하지 않는 게시글입니다." 만들려면 (0) | 2023.06.29 |
---|---|
에러 기록 - SequelizeDatabaseError, sqlMessage: "Unknown column 'postId' in 'field list'" (0) | 2023.06.29 |
에러 기록 - JsonWebTokenError: invalid signature (0) | 2023.06.22 |
.toHexString() (0) | 2023.06.19 |
node.js mongoose 시간 적는 법 (0) | 2023.06.19 |