[Node.js/MongoDB] Mongoose에서 ObjectId 값을 제대로 못 받아오는 현상

2022. 5. 30. 20:12·Learning-Log/Computer Science
728x90
320x100

(22.05.30)

~./node_modules/mongoose/lib/query.js:4719
  const castError = new CastError();
                    ^

CastError: Cast to ObjectId failed for value "null" (type string) at path "_id" for model "User"
    at model.Query.exec (~./node_modules/mongoose/lib/query.js:4719:21)
    at model.Query.Query.then (~./node_modules/mongoose/lib/query.js:4818:15)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  messageFormat: undefined,
  stringValue: '"null"',
  kind: 'ObjectId',
  value: 'null',
  path: '_id',
  reason: BSONTypeError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer
      at new BSONTypeError (~./node_modules/bson/src/error.ts:16:5)
      at new ObjectId (~./node_modules/bson/src/objectid.ts:88:15)
      at castObjectId (~./node_modules/mongoose/lib/cast/objectid.js:24:12)
      at ObjectId.cast (~./node_modules/mongoose/lib/schema/objectid.js:245:12)
      at ObjectId.SchemaType.applySetters (~./node_modules/mongoose/lib/schematype.js:1189:12)
      at ObjectId.SchemaType._castForQuery (~./node_modules/mongoose/lib/schematype.js:1623:15)
      at ObjectId.SchemaType.castForQuery (~./node_modules/mongoose/lib/schematype.js:1613:15)
      at ObjectId.SchemaType.castForQueryWrapper (~./node_modules/mongoose/lib/schematype.js:1590:20)
      at cast (~./node_modules/mongoose/lib/cast.js:344:32)
      at model.Query.Query.cast (~./node_modules/mongoose/lib/query.js:5141:12),
  valueType: 'string'
}
[nodemon] app crashed - waiting for file changes before starting...

갑자기 이런 오류현상이 발생하여서 기록한다.

stringValue를 보면 _id가 없을 때, String타입으로 null이 강제할당 되어버려서 발생하는 현상 같은데 구체적으로 어디서 발생하는 문제인지 아직 모르겠다. 해결법을 찾으면 추후 재포스팅 예정. 

 

(22.06.03)

이 문제가 항상 발생하는게 아니라는 사실을 발견했다. 오히려 매우 특이한 조건하에서만 발생한다.
본인의 컴퓨터에서는 특정 브라우저에서 특정 상황에서만 저 에러가 뜨는 것을 발견하였다.

총 4개의 브라우저(크롬 1, 크롬 2, 크롬 3, 엣지)로 테스트하였고, 개발용으로 쓰는 크롬 브라우저에서만 이 현상이 발생하였다.

따라서 이 이슈는 우선순위에서 잠시 밀어두고 해결책은 천천히 찾기로 결정.
현재로서 가장 의심되는 것은 개발용 브라우저에 설치해둔 개발자툴 중에 하나가 무언가 충돌을 일으키는 것 같다.

왜냐하면, 위 오류에서 본인은 ' "null" '이 매우 눈에 거슬리는 상황이었는데,
모든 페이지에서 /null 로 접속을 시도하는 로그가 발견되었기 때문이다. 그러니 당연히 404에러가 뜰 수 밖에.. 본인은 /null 라우터를 만들어 놓지 않았기 때문.

어쨌거나 null이 계속 눈에 밟힌다는 점에서 ' "null" ' 과 /null 은 관련성이 있다고 보여진다. 

대부분의 사용자 환경에서는 문제 없다는 점.
heroku error code H13에 해당되어 "Connection closed without response"가 유발되지만, 자동으로 서버 재시작이 이루어지는 경미한 error 라는 점
결정적으로, null이 crash를 일으키는 페이지가 현재 잘 쓰이지 않는 기능(아마 아무도 안 쓸듯)라는 점에서 일단 차후에 천천히 해결하기로 결정지었다.

 

.......였는데 성격상 넘어가질 못하고 이리저리 테스트 해 본 결과, 이 현상의 원인을 찾는데 성공함.
아래 링크 참조

 

[크롬 확장 프로그램] CrxMouse 버그 발견

운영하는 웹에서 자꾸 null로의 접근시도가 발견되었다. 아무리 코드를 뒤적거려봐도 나는 null로 fetch를 주거나 redirect하거나 한 적이 없는데 어느 페이지를 가든지 무조건 /null에 접근하려는 것

xpectation.tistory.com

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Learning-Log > Computer Science' 카테고리의 다른 글

[JS/함수] 화살표 함수 1분만에 이해하기 : 함수(Function)을 정의하는 4가지 방법  (0) 2022.06.07
[크롬 확장 프로그램] CrxMouse 버그 발견  (1) 2022.06.03
Parsing(파싱)과 Parser(파서)  (0) 2022.05.30
[Multer] Crash in HeaderParser in dicer  (0) 2022.05.30
[Linux/Ubuntu] Ubuntu에 프로그램 설치하기 - 심화편  (1) 2022.05.30
'Learning-Log/Computer Science' 카테고리의 다른 글
  • [JS/함수] 화살표 함수 1분만에 이해하기 : 함수(Function)을 정의하는 4가지 방법
  • [크롬 확장 프로그램] CrxMouse 버그 발견
  • Parsing(파싱)과 Parser(파서)
  • [Multer] Crash in HeaderParser in dicer
Xpectation
Xpectation
理
    반응형
    250x250
  • Xpectation
    자기실현적 기대
    Xpectation
  • 전체
    오늘
    어제
    • 전체보기 (213)
      • Thinking-Log (42)
        • 인간에 관한 생각 (22)
        • 사회현상에 관한 생각 (9)
        • 말씀에 관한 생각 (4)
        • 기타 잡념 (7)
      • Trading-Log (8)
        • 주식 잡념 (9)
      • Learning-Log (104)
        • Computer Science (70)
        • Economics (21)
        • Law (1)
        • ETC (12)
      • Review-Log (42)
        • 食思味 (13)
        • 聽思聰 (6)
        • 視思明 (12)
        • IT 제품, 전자기기 (6)
        • 게임 (0)
        • 기타 (5)
      • Creating-Log (5)
        • 주방 (0)
        • 서재 (5)
        • 기타 (0)
      • Photo-Log (3)
        • 사진 일기 (3)
      • 미분류 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • 티스토리 홈
  • 공지사항

  • 인기 글

  • 태그

    오블완
    ASMR
    주식
    마인드위즈Pro
    수면유도
    경제학
    매매일지
    클래식음악
    딥러닝
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Xpectation
[Node.js/MongoDB] Mongoose에서 ObjectId 값을 제대로 못 받아오는 현상
상단으로

티스토리툴바