Node.js Express로 Firebase Firestore DB와 연동하는 과정에서 express 서버가 안 켜지는 에러가 발생했다.
이를 해결하는 과정을 기록.
Error Message
node:internal/modules/cjs/loader:488
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /Users/-----/Desktop/Node.js_Express_Firebase_CRUD_Practice/node_modules/firebase/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:453:9)
at packageExportsResolve (node:internal/modules/esm/resolve:731:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous>
(/Users/-----/Desktop/Node.js_Express_Firebase_CRUD_Practice/db.js:1:18) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
해결 과정
1. Node.js 버전 낮추기
찾아보니까... 비슷한 오류 메시지 있는 블로그에서 node.js 버전 낮추면 된단다.
나는 LTS 버전인 16.14.2 쓰고 있는데 왜 안되는 거냐고. 제기랄ㄹㄹㄹㄹ
그렇게 16.13.0 으로 버전을 낮춰서 다시 실행해 봤지만 실패.
2. firebase 패키지 대신 firebase-admin 사용하기.
const firebase = require("firebase");
를 이용해서 npm의 firebase 패키지를 사용하고 있었는데, firebase-admin을 사용하면 된다는 내용을 발견했다.
찾은 내용 링크 - stackoverflow. Stackoverflow는 신이야..
바로 실행에 옮김.
$ npm install firebase-admin
firebase-admin 패키지 먼저 설치해 주고
const firebase = require("firebase-admin");
얘만 이렇게 쏙 옮김.
여기서 에러 해결. 잘 돌아간다..하하..다행이야...