TypeScript项目调用mongoose.connect时useNewUrlParser等配置不识别如何解决
问题解决方法
问题根源
Mongoose 6.x及以上版本默认已开启useNewUrlParser、useUnifiedTopology配置,同时这两个参数已从官方ConnectOptions类型定义中移除,手动传入会触发TypeScript类型不匹配报错。
解决方案
最优方案:移除冗余配置
直接删除mongoose.connect的第二个参数里的两个配置项即可,同时注意检查是否已经导入mongoose依赖,修改后的代码如下:
import config from "config"; import log from "../logger"; import mongoose from "mongoose"; function connect() { const dbUri = config.get("dbUri") as string; return mongoose .connect(dbUri) .then(() => { log.info("Database connected"); }) .catch((error) => { log.error("db error", error); process.exit(1); }); } export default connect;
修改后重新运行即可正常完成数据库连接。
兼容旧版本方案(不推荐)
如果项目有特殊兼容要求必须保留这两个参数,可以给配置项加上类型断言跳过类型校验:
mongoose.connect(dbUri, { useNewUrlParser: true, useUnifiedTopology: true, } as mongoose.ConnectOptions)
内容的提问来源于stack exchange,提问作者SU7
相关产品推荐
相关产品推荐

