mongoose.Types.ObjectId 已弃用

问题描述 投票:0回答:1

我在我的 Nodejs 应用程序中使用猫鼬模型

在下面的代码片段中

userID = req.user.id
const uid = new mongoose.Types.ObjectId(userId)
if(course.StudentsEnrolled.includes(uid)){
// business logic
}

这里的 userId 将是字符串的形式 但我在“ObjectId”中看到一条虚线:

'mongoose.Types.ObjectId' 的签名 '(inputId: number): ObjectId' 已弃用。ts(6387) bson.d.ts(1030, 8):该声明在此处被标记为已弃用。

我想知道为什么会发生这种情况,因为我在网上没有找到任何解决方案

node.js mongoose
1个回答
0
投票

您看到的警告是因为

mongoose.Types.ObjectId
需要
string
输入,但
req.user.id
可能是
number
。要修复它,请在传递之前将
req.user.id
转换为
string

const userId = req.user.id.toString();
const uid = new mongoose.Types.ObjectId(userId);

这符合 Mongoose 的期望并解决了警告。

© www.soinside.com 2019 - 2024. All rights reserved.