TypeScript编译MongoDB代码出错:.default致MongoClient读取失败
解决TypeScript连接MongoDB时的
.default编译错误 直接改用命名导入
把原导入代码换成命名导入形式,从根源跳过默认导出的问题:import { MongoClient } from 'mongodb';这样编译后会直接生成
const MongoClient = mongodb_1.MongoClient;,不会出现多余的.default,能直接正常运行。核对tsconfig.json核心配置
如果坚持要用原导入方式,确保以下配置项正确设置:{ "compilerOptions": { "module": "CommonJS", "moduleResolution": "node", "esModuleInterop": true, "allowSyntheticDefaultImports": true } }注意修改配置后必须重启TS编译器或编辑器的TS语言服务,很多时候配置不生效是因为没刷新服务。
确认mongodb模块类型
打开node_modules/mongodb/package.json查看type字段:- 如果是
commonjs,说明它是CommonJS模块,本身没有default导出,用命名导入是最稳妥的选择。 - 如果是
module,那属于ES模块,可改用import * as mongoDb from 'mongodb'导入所有导出,再通过mongoDb.MongoClient调用。
- 如果是
内容的提问来源于stack exchange,提问作者DadaMlatic
相关产品推荐
相关产品推荐

