问题描述
因为我对 (MERN) 技术非常陌生。这个警告让我困扰了一段时间
(DeprecationWarning: Mongoose: findOneAndUpdate()
和 findOneAndDelete()
没有将 useFindAndModify
选项设置为 false 已弃用。)
而且我也没有在这个功能上使用任何东西。
router.delete('/:id',(req,res)=> {
Category.findByIdAndRemove(req.params.id).then(category => {
if(category){
return res.status(200).json({success: true,message: ' The category is deleted...'})
} else {
return res.status(404).json({success: false,message: " Category not found..."})
}
}).catch(err=>{
return res.status(404).json({success: false,error: err})
})
})
解决方法
如果您使用 Model.findOneAndUpdate(),默认情况下您会看到以下弃用警告之一[...] 此选项影响以下模型和查询功能。 模型.findByIdAndDelete() Model.findByIdAndRemove() Model.findByIdAndUpdate() 模型.findOneAndDelete() 模型.findOneAndRemove() 模型.findOneAndUpdate() Query.findOneAndDelete() Query.findOneAndRemove() Query.findOneAndUpdate()
大多数情况下,一些 mongoose 命令只是 MongoDB 命令的别名。
解决方法很简单,你必须将选项传递给猫鼬连接:
- The package javax.xml is accessible from more than one module: <unnamed>,java.xmlJava(8390063)
- The package javax.xml.transform.stream is accessible from more than one module: <unnamed>,java.xmlJava(8390063)
- The package javax.xml.validation is accessible from more than one module: <unnamed>,java.xmlJava(8390063)
或者设置在:
mongoose.connect(uri,{ useFindAndModify: false });
更多信息位于:https://mongoosejs.com/docs/deprecations.html (findAndModify())
,只需添加mongoose.set('useFindAndModify',false);