• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Next.js 게시판 nextJs + Typescript + MongoDB 이용해서 공부하고 있는데요ㅠㅠ

nextJs + Typescript + MongoDB 이용해서 공부하고 있는데요ㅠㅠ

  • 이 주제에는 4개 답변, 3명 참여가 있으며 김민서2 년 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #87612

    김민서
    참가자
    검색을 해봐도 몽구스 이용해서 한 글이 많이 나와서 여쭤봅니다ㅠㅠ
    
    database.ts 에서는
    20230619_190306_1
    이렇게 나오구여...
    [...nextauth].js 에서는
    
    20230619_190540_1
    
    bcrypt 라이브러리까지 오류가 납니다ㅠㅠ
    
    라이브러리까지 오류가 나니 그냥 포기하고 js 파일로 해야할까요??
    
    제 능력으로는 도움되는 문서 하루종일 찾아봐도 안보여요ㅠㅠ
    
    혹시 도움 될만한 문서가 있을까요??
    
    
    
    
    
    #87619

    codingapple
    키 마스터
    타입 검색해서 적용하는수밖에 없습니다 
    https://stackoverflow.com/a/74083358
    database.js에는 globalThis 같은 타입 미리 정의해놔야되는듯요 
    
    
    #87692

    김민서
    참가자
    넵 ㅠㅠ 열심히 찾아보겠습니다ㅠ
    #89796

    Japark
    참가자
    안녕하세요! 저도 동일한 문제를 겪다가 게시글을 참조하여 문제해결에 도움을 얻었습니다.
    시간이 많이 지났지만 이 문제에 대한 해결 방법을 공유하고자 합니다.
    connectDB와 _mongo변수타입을 프로미스로 설정하고, 전역변수 선언파일(global.d.t.ts)을 루트경로에 
    두라는 글도 있었지만 계속해서 오류가 발생해서 별도의 디렉토리(src/type)를 생성하고
     tsconf내부에 typeRoots옵션을 수정하여 문제를 해결했습니다.
    몽고 연결 API root/src/util/database.ts
    import {MongoClient} from 'mongodb'
    // Connect MongoDB
    const url = process.env.MONGODB_URL;
    // 환경변수 설정하지 않으면 에러 발생
    if (!url) {
        throw new Error('The MONGODB_URL environment variable is not defined')
    }
    let connectDB: Promise<MongoClient>;
    if (process.env.NODE_ENV === 'development') {
        if (!global._mongo) {
            global._mongo = new MongoClient(url).connect()
        }
        connectDB = global._mongo
    } else {
        connectDB = new MongoClient(url).connect()
    }
    export {connectDB}
    
    
    _mongo 전역 타입 지정 root/src/type/global.d.t.ts
    export {};
    declare global {
        var _mongo: Promise<MongoClient> | undefined;
    }
    컴파일 설정 tsconfig.json
    ..
    "typeRoots": [
          "./src/types",
          "./node_modules/@types"
        ]
    ...
    "include": [
        ".next/types/**/*.ts",
        "src/**/*",
        "global.d.ts"
      ],
    #90593

    김민서
    참가자
    앗 감사합니다 어찌저찌 해결은 했었는데 훨씬 간결해보이네요!
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠