Я пытаюсь опубликовать пользователей в /user с помощью express.Router() Но там написано, что await 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;
Я много пробовал, может быть, здесь есть другое решение этой проблемы? Спасибо заранее
@JSONDerulo уже добавлен
User.deleteMany({});
Объект, которому вы звоните remove()
, является Моделью . Глядя на его документацию, действительно нет функции remove
; единственная функция, имя которой намекает на подобное поведение, которое я могу найти, — это функция deleteOne()
и deleteMany()
, найденная в документации.
Функция remove
является частью Schema
, как показано здесь в документации. В вашем коде Schema
используется только в файле UserModel.js
для создания модели.
У меня была аналогичная проблема с одним из моих собственных проектов, где было сказано, что user.remove() не является функцией, а user.deleteOne() работал для меня.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Можете ли вы поделиться соответствующими частями
UserModel.js
?