typescript - '{ useNewUrlParser: boolean; 类型的参数 useUnifiedTopology: boolean}' 不可分配给参数类型'
问题描述
我正在尝试将我的 Node.js 服务器连接到 Atlas mongo 数据库。我为此使用猫鼬。
await mongoose
.connect(process.env.MONGO_URI!, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
poolSize: parseInt(process.env.POOL_SIZE!),
})
.then((res) => {
console.log(
'Connected to Distribution API Database - Initial Connection'
);
})
.catch((err) => {
console.log(
`Initial Distribution API Database connection error occured -`,
err
);
});
我在 package.json 文件中与此相关的依赖项如下
"dependencies": {
"@types/mongoose": "5.7.29",
"mongoose": "5.9.21",
"typescript": "3.9.5"
},
这在早期工作时没有任何问题(我根本没有更新 @types/mongoose 或 mongoose 版本),现在突然出现以下错误
Compilation error in /app/src/index.ts
Using ts-node version 8.10.2, typescript version 3.9.5
[ERROR] 16:25:18 ⨯ Unable to compile TypeScript: src/index.ts(59,11): error TS2769: No overload matches this call.
Overload 1 of 3, '(uris: string, callback: (err: MongoError) => void): Promise<typeof import("mongoose")>', gave the following error.
Argument of type '{ useNewUrlParser: boolean; useUnifiedTopology: boolean; useCreateIndex: boolean; useFindAndModify: boolean; poolSize: number; }' is not assignable to parameter of type '(err: MongoError) => void'.
Object literal may only specify known properties, and 'useNewUrlParser' does not exist in type '(err: MongoError) => void'.
Overload 2 of 3, '(uris: string, options?: ConnectionOptions | undefined): Promise<typeof import("mongoose")>', gave the following error.
Argument of type '{ useNewUrlParser: true; useUnifiedTopology: true; useCreateIndex: true; useFindAndModify: false; poolSize: number; }' is not assignable to parameter of type 'ConnectionOptions'.
Object literal may only specify known properties, and 'poolSize' does not exist in type 'ConnectionOptions'
有人可以帮我吗?非常感谢对此的任何想法。
谢谢
解决方案
npm 包“@types/mongoose”已被弃用,因为最新版本的 Mongoose 发布了自己的类型。
https://www.npmjs.com/package/@types/mongoose
因此,最新版本的 mongoose (6.0.3) 不提供 useNewUrlParser、useCreateIndex、useUnifiedTopology 和 useFindAndModify 的连接选项。
要解决这个问题,请将 mongoose 降级到旧版本,如5.13.8,然后它应该可以正常工作而没有任何问题。:)
推荐阅读
- algorithm - 更简单的 KMP 前缀表构建。这个实现会有什么问题?
- julia - 在 Julia 中使用过滤器后使用包含
- python - "RuntimeError: 这个事件循环已经在运行"; 在 python 3.6.5 中调试 aiohttp、asyncio 和 IDE “spyder3”
- javascript - Javascript下拉列表未完成完整任务
- c# - 如何检测用户界面按钮的点击?
- javascript - 将 JavaScript 注入 Puppeteer 的最佳方法是什么?
- algorithm - 查找对象是否在给定数字的范围内(定位为经纬度)
- javascript - jQuery 转换为纯 JavaScript
- php - 如何将命名锚添加到我的 PHP 动态链接?
- sql - SQL - 检索最接近的值 DOWN