导入MongoClient时出现pkFactory错误的技术求助
解决MongoClient导入导致的语法错误问题
问题背景
我有一个简单的app.js文件,代码如下:
import express from 'express'; import bodyParser from 'body-parser'; // import session from 'express-session'; // import path from 'path'; import dotenv from 'dotenv'; import { MongoClient } from 'mongodb/lib'; // import { readdirSync } from 'fs'; // import { connectDatabase } from './config/database.mjs'; // import connectRedis from './config/redis.js'; const uri = process.env.MONGODB_URI; dotenv.config(); const app = express(); const port = process.env.PORT || 3000; app.use(bodyParser.json());
只要取消注释MongoClient的导入语句,就会收到以下错误:
pkFactory: db.options?.pkFactory ?? utils_1.DEFAULT_PK_FACTORY,
环境信息:
- Node版本:v18.12.1
- NPM版本:8.19.12
- mongodb包版本:^5.7.0
我正在遵循MongoDB官方的Node.js原生驱动连接指南。
解决方法
修改MongoClient的导入路径,替换为官方指定的正确导入方式:
import { MongoClient } from 'mongodb';
原因说明
你错误地从mongodb/lib这个内部模块路径导入了MongoClient,该路径不属于驱动的公开API范畴。直接引用内部模块会绕过驱动的正常导出逻辑,导致加载过程中出现代码语法或模块依赖的异常。
官方指南中明确要求从mongodb包根目录导入MongoClient,这样才能加载驱动的正确入口文件,确保所有依赖和语法都能被你的Node.js环境正确解析。
内容的提问来源于stack exchange,提问作者Mr. Bannable
相关产品推荐
相关产品推荐

