Node.js报错:Product.findByIdAndRemove is not a function 问题咨询
解决办法
1. 适配Mongoose版本变更
从Mongoose 6.x版本开始,findByIdAndRemove被标记为废弃,官方推荐使用findByIdAndDelete替代。如果你的Mongoose版本是6及以上,直接替换代码中的方法:
const deletedProduct = await Product.findByIdAndDelete(productId);
2. 检查Product模型的导出正确性
修改Post方法时可能误改了模型文件的导出逻辑,打开你的Product模型文件(如models/Product.js),确保正确导出Mongoose模型:
const mongoose = require('mongoose'); const productSchema = new mongoose.Schema({ // 你的产品字段定义 }); // 必须导出mongoose.model创建的模型实例 module.exports = mongoose.model('Product', productSchema);
避免只导出Schema对象或其他非模型实例的内容。
3. 确认路由文件中Product的导入路径
检查路由文件里导入Product的路径是否正确,是否因文件结构变动导致导入了错误的文件:
// 确保路径指向正确的模型文件 const Product = require('../models/Product');
4. 排查multer配置的变量冲突
如果multer的配置代码和模型导入放在同一文件,检查是否存在变量名冲突(比如误用Product命名multer相关变量),或者multer初始化过程中意外覆盖了Product模型的引用。
内容的提问来源于stack exchange,提问作者Mıktad Tahir Durak
相关产品推荐
相关产品推荐

