최근에는 Node.js 백엔드 개발자 되기라는 책으로 Node.js로 백엔드를 작성하는 방법을 공부하고 있습니다. Node.js에서 MongoDB에 연결하는 예제코드를 실행하던 중 아래와 같은 오류가 발생했습니다.

C:\Program Files\nodejs\node.exe .\24_nodejs_backend\chapter6\try-mongo\test-connection.js Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'startsWith')

기초 단계의 예제 코드였기 때문에 책에서는 MongoDB 연결 URL을 인라인으로 명시 후 사용하였으나 해당 URL에 계정 정보가 포함되어있었기 때문에 저는 예제 코드를 .env 파일을 사용하는 방식으로 변경하여 진행하면서 발생한 문제였습니다. 제가 수정한 코드중 오류가 발생한 부분은 다음과 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
require('dotenv').config()

const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = process.env.MONGODB;

// Create a MongoClient with a MongoClientOptions object to set the Stable API version
const client = new MongoClient(uri, {
    serverApi: {
        version: ServerApiVersion.v1,
        strict: true,
        deprecationErrors: true,
    }
});

.env 파일이 프로젝트 폴더의 root 경로에 있었지만 읽어오지 못해서 발생하는 오류였습니다. 다음 링크를 참고하여 .env 파일의 경로를 명시했더니 문제가 해결되었습니다.

아래는 수정한 코드입니다.

1
2
3
4
5
6
7
const path = require("path")
require('dotenv').config({ path: path.resolve(__dirname, '.env') });

const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = process.env.MONGODB;

// 아래는 동일