我试图张贴用户与express.Router()但是它说等待User。Remove不是一个函数。也许我需要导入更多的功能?下面是代码
import express from "express";
import User from "./Models/UserModel.js";
import users from "./data/users.js";
import Product from "./Models/ProductModel.js"
const ImportData = express.Router()
ImportData.post(
"/user",
async (req, res) => {
await User.remove({});
const importUser = await User.insertMany(users);
res.send({ importUser });
}
);
ImportData.post("/products",async (req,res)=>{
await Product.remove({});
const importProducts = await Product.insertMany(products);
res.send({ importProducts });
});
export default ImportData;
错误:
await User.remove({});
^
TypeError: User.remove is not a function
at file:///C:/react//frontend/Server/DataImport.js:12:18
UserModel.js:
import mongoose from "mongoose";
import bcrypt from "bcryptjs";
const userSchema = mongoose.Schema(
{
name: {
type: String,
required: true,
},
email: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
},
isAdmin: {
type: Boolean,
required: true,
default: false,
},
},
{
timestamps: true,
}
);
const User = mongoose.model("User", userSchema);
export default User;
我试了很多,也许这里有另一个解决这个问题的方法?提前谢谢你
调用remove()
的对象是一个模型。看看它的文档,确实没有remove
函数;我能找到的唯一一个函数的名字暗示了类似的行为是在文档中找到的deleteOne()
和deleteMany()
函数。
remove
函数是Schema
的一部分,在文档中可以看到。在您的代码中,Schema
仅在UserModel.js
文件中使用,以创建模型。
在新的猫鼬版本中,document.remove()已弃用。将remove()替换为deleteOne()或deleteMany()。查看mongoose文档的弃用警告。
我有一个类似的问题与我自己的一个项目,它说user.remove()不是一个函数和user.deleteOne()为我工作。