LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 2693
  • UI/UX
  • 코플릿
  • 안드로이드스튜디오범블비
  • ubuntu
  • 사용자친화웹
  • 파이어베이스연동
  • html
  • 사용자 친화 웹
  • JavaScript
  • 코드스테이츠
  • 생활코딩
  • TODOlist
  • 백준
  • 코딩애플
  • 1292
  • 번들링
  • figjam
  • 알고리즘
  • css
  • React
  • 사이드프로젝트
  • linuix 코드스테이츠
  • 자바스크립트
  • codestate
  • 2609
  • 안드로이드스튜디오파이어베이스
  • DP
  • linux
  • 웹팩

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[env] js에서 env파일 undefined /오류 코드 : "MongoServerError: bad auth : Authentication failed."
정보/오류노트

[env] js에서 env파일 undefined /오류 코드 : "MongoServerError: bad auth : Authentication failed."

2022. 12. 15. 11:51

⛔문제

다음과 같이 mongoDB에 파일을 보낼 js파일을 만들었습니다.

//index.js중 일부
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect(`mongodb+srv://${process.env.MONGODB_USER_ID}:${process.env.MONGODB_USER_PW}@cluster0.pso4lve.mongodb.net/?retryWrites=true&w=majority`,
    function (err, client) {
        if (err) {
            return console.log(err)
        }
        db = client.db('todoApp');

        db.collection('post').insertOne({title: '고양이 밥주기', data: '12월25일'}, function (err, result) {
            console.log('저장완료');
        });

        app.listen(port, () => {
            console.log(`Example app listening on port ${port}`)
        });
    })

 

 

같은 경로에 env파일을 만들었습니다

MONGODB_USER_ID=leewang
MONGODB_USER_PW=PW

이 상태로 실행을 하니 서버가 열리는게 오류가 발생했습니다.

 

❓오류코드

MongoServerError: bad auth : Authentication failed.
    at Connection.onMessage (D:\Code\codingApple\nodejs\node_modules\mongodb\lib\cmap\connection.js:230:30)
    at MessageStream.<anonymous> (D:\Code\codingApple\nodejs\node_modules\mongodb\lib\cmap\connection.js:61:60)
    at MessageStream.emit (node:events:513:28)
    at processIncomingData (D:\Code\codingApple\nodejs\node_modules\mongodb\lib\cmap\message_stream.js:125:16)
    at MessageStream._write (D:\Code\codingApple\nodejs\node_modules\mongodb\lib\cmap\message_stream.js:33:9)
    at writeOrBuffer (node:internal/streams/writable:391:12)
    at _write (node:internal/streams/writable:332:10)
    at MessageStream.Writable.write (node:internal/streams/writable:336:10)
    at TLSSocket.ondata (node:internal/streams/readable:754:22)
  ok: 0,
  code: 8000,
  codeName: 'AtlasError',
  connectionGeneration: 0,
  [Symbol(errorLabels)]: Set(2) { 'HandshakeError', 'ResetPool' }
}

 

✅해결과정

console.log로 env파일의 값이 잘 넘어 오는지 확인했습니다.

console.log(process.env.MONGODB_USER_ID)

오류는 여전히 있었고, 출력은 undefined가 나왔습니다.

정상적으로 넘어오지 않는다는것을 알아내고 검색을 했습니다.

 

https://spiralmoon.tistory.com/entry/Nodejs-env-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98

 

[Node.js] .env 환경변수

▶ 주제 : .env 환경변수 Node.js에서 프로그래밍에 필요한 값들을 서술할 수 있는 .env 환경변수 파일에 대하여 알아보자. ▶ 예시 Node.js에서는 프로젝트 디렉토리에 .env라는 이름의 파일이 존재하

spiralmoon.tistory.com

해당 블로그를 통해 dotenv가 있어야 정상적으로 env가 실행 될수 있다는 것을 알아냈고, dotenv를 install하고 정상적으로 가져오기 위한 코드를 작성했습니다.

const dotenv = require('dotenv')
dotenv.config();
[nodemon] restarting due to changes...
[nodemon] starting `node index.js`
Example app listening on port 3001
저장완료

 

🌟결론

env를 사용시 auth오류가 뜰 경우 dotenv 라이브러리를 통해 오류를 해결해 보자~❕

저작자표시 (새창열림)

'정보 > 오류노트' 카테고리의 다른 글

[git] add 오랜 시간 소요  (0) 2022.12.17
    '정보/오류노트' 카테고리의 다른 글
    • [git] add 오랜 시간 소요
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바