Получение ошибки «Невозможно перезаписать модель пользователя после компиляции». - PullRequest
0 голосов
/ 11 февраля 2020

Я пытался прочитать другие статьи с той же или подобной проблемой, но я все еще не могу понять, что не так. Я получаю сообщение об ошибке:

'Невозможно перезаписать User модель после компиляции.'

Кто-нибудь знает, в чем заключается проблема или как ее решить?

сервер. js

const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

require("dotenv").config();

const uri = process.env.ATLAS_URI;
mongoose.connect(uri, { useNewUrlParser: true, useCreateIndex: true });

const connection = mongoose.connection;

connection.once("open", () => {
  console.log("MongoDB connection established successfully");
});

const userrecipesRouter = require("./routes/userrecipes");
const usersRouter = require("./routes/users");

app.use("/userrecipes", userrecipesRouter);
app.use("/users", usersRouter);

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

модели / user.model. js

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const userSchema = new Schema(
  {
    username: {
      type: String,
      required: true,
      unique: true,
      trim: true,
      minlength: 3
    }
  },
  {
    timestamp: true
  }
);

const User = mongoose.model("User", userSchema);

module.exports = User;

маршруты / пользователи. js

const router = require("express").Router();
let User = require("../models/user.model");

router.route("/").get((req, res) => {
  User.find()
    .then(users => res.json(users))
    .catch(err => res.status(400).json("Error: " + err));
});

router.route("/add").post((req, res) => {
  const username = req.body.username;
  const newUser = new User({ username });
  newUser
    .save()
    .then(() => res.json("User added!"))
    .catch(err => res.status(400).json("Error: " + err));
});

module.exports = router;

1 Ответ

0 голосов
/ 11 февраля 2020

Попробуйте заменить следующим кодом в routes/users.js

router.route("/add").post((req, res) => {
  const username = req.body.username;
  User({ username })
    .create()
    .then(() => res.json("User added!"))
    .catch(err => res.status(400).json("Error: " + err));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...