简体   繁体   English

OverwriteModelError: 编译后无法覆盖`user` model

[英]OverwriteModelError: Cannot overwrite `user` model once compiled

I am facing this issue.我正面临这个问题。 I looked online for hours to find out what the problem is before posting here.在发布到这里之前,我在网上看了几个小时以找出问题所在。 I keep getting this error OverwriteModelError: Cannot overwrite ``user`` model once compiled.我不断收到此错误OverwriteModelError: Cannot overwrite ``user`` model once compiled. after sending a post request via postman and I can't find out what's going on.通过postman发送发布请求后,我不知道发生了什么。 could you help me find out what's going on?你能帮我看看是怎么回事吗? thank you so much in advance!非常感谢你!

server.js服务器.js

const express = require("express");
const app = express();
const user = require("./routes/user");
const connectDB = require("./config/db");

connectDB();
app.use(express.json({extended: false}));
app.get("/", (req, res) => {
  res.send("welcome to our api");
});
app.use("/user", user);

const PORT = 3000 || process.env.PORT;
app.listen(PORT, () => {
  console.log(`PORT ${PORT} listening and refeshing...`);
});

db.js数据库.js

const mongoose = require("mongoose");
const connectDB = () =>
  mongoose
    .connect(
      "some database",
      {
        useNewUrlParser: true,
        useUnifiedTopology: true,
      }
    )
    .then(
      () => {
        console.log("mongoDB conneted");
      },
      (err) => {
        console.log(err);
      }
    );
module.exports = connectDB;

user.js用户.js

const express = require("express");
const router = express.Router();
const mongoose = require("mongoose");
const bcrypt = require("bcrypt");
const jwt = require("jsonwebtoken");
const {body, validationResult} = require("express-validator");
router.get("/", (req, res) => {
  res.send("hello");
});

router.post(
  "/",
  [
    // password must be at least 5 chars long
    body("email").isEmail(),
    body("password").not().isEmpty(),
  ],
  async (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty) {
      return res.status(400).json({errors: errors.array()});
    }

    try {
      const UsersSchema = mongoose.Schema({
        email: {type: String, required: true},
        password: {type: String, required: true},
      });

      var users = mongoose.model("user", UsersSchema);

      var user = new users({
        email: req.body.email,
        password: req.body.password,
      });

      const salt = await bcrypt.genSalt(10);
      user.password = await bcrypt.hash(req.body.password, salt);
      user.save((err, user1) => {
        if (err) {
          console.log("error posing user");
          throw err;
        }
      });
      console.log(user.id);
      const payload = {
        user: {
          id: user.id,
        },
      };
    } catch (error) {
      console.log(error);
      res.status(400);
    }
  }
);
module.exports = router;

Every time the route runs it tries to create a schema which is already created.Mongoose create the collection with the first argument user by converting it to plural ie users .每次路由运行时,它都会尝试创建一个已经创建的模式。ZCCADCDEDB567ABAE643E15DCF0974E503Z 通过将第一个参数user转换为复数即users来创建集合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Mongoose OverwriteModelError:编译后无法覆盖模型 - Mongoose OverwriteModelError: Cannot overwrite model once compiled OverwriteModelError:编译后无法覆盖“团队”模型 - OverwriteModelError: Cannot overwrite `teams` model once compiled OverwriteModelError:编译后无法覆盖`actors`模型 - OverwriteModelError: Cannot overwrite `actors` model once compiled OverwriteModelError:编译后无法覆盖`Product`模型 - OverwriteModelError: Cannot overwrite `Product` model once compiled OverwriteModelError:编译后无法覆盖 `User` model。 在 Mongoose.model - OverwriteModelError: Cannot overwrite `User` model once compiled. at Mongoose.model Express,猫鼬:OverwriteModelError:编译后无法覆盖“ xxxxx”模型 - Express, Mongoose : OverwriteModelError : Cannot Overwrite 'xxxxx' model once compiled Mongoose: OverwriteModelError: 无法覆盖`users` model 一旦编译 - Mongoose: OverwriteModelError: Cannot overwrite `users` model once compiled MongooseError [OverwriteModelError]:编译后无法覆盖`Team` model - MongooseError [OverwriteModelError]: Cannot overwrite `Team` model once compiled 如何修复:MongooseError [OverwriteModelError]:编译后无法覆盖 `User` 模型。(MERN 堆栈)? - How to fix:MongooseError [OverwriteModelError]: Cannot overwrite `User` model once compiled.(MERN stack)? 如何摆脱错误:“OverwriteModelError: Cannot overwrite `undefined` model 一旦编译。”? - How to get rid of Error: "OverwriteModelError: Cannot overwrite `undefined` model once compiled."?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM