我是MERN堆栈的入门者,我试图从youtube教程构建一个运动追踪器应用。当我运行服务器时,我不知道是什么给了我Mongoose:OverwriteModelError,看看我在哪里覆盖用户模型。有人可以在这里指出导致错误的代码吗?
我已经在网上搜索了很多,但是找不到导致代码错误的原因
models / user.model.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
username:{
type:String,
required:true,
unique:true,
minlength:3,
trim:true
}
},
{
timestamps:true
}
);
const User = mongoose.model('User',userSchema);
module.exports = User
routes / users.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;
server.js
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
require('dotenv').config();
const app = express();
const port = process.env.PORT || 5000;
app.use(cors());
app.use(express.json());
const uri = process.env.ATLAS_URI;
mongoose.connect(uri,{ useNewUrlParser: true, useCreateIndex: true ,useUnifiedTopology: true });
const connection = mongoose.connection;
connection.once('open',() => {
console.log('Database connection established successfully');
})
const exercisesRouter = require('./routes/exercises');
const usersRouter = require('./routes/users');
app.use('/exercises',exercisesRouter);
app.use('/users',usersRouter);
app.listen(port,() => {
console.log('Server is running on port: ',port);
});
这是我收到的错误消息
MongooseError [OverwriteModelError]: Cannot overwrite `User` model once compiled.
at new OverwriteModelError (C:\Users\Josu\Desktop\Exercise Tracker\mern-exercise-tracker\backend\node_modules\?[4mmongoose?[24m\lib\error\overwriteModel.js:20:11)
at Mongoose.model (C:\Users\Josu\Desktop\Exercise Tracker\mern-exercise-tracker\backend\node_modules\?[4mmongoose?[24m\lib\index.js:512:13)
at Object.<anonymous> (C:\Users\Josu\Desktop\Exercise Tracker\mern-exercise-tracker\backend\models\user.model.js:18:23)
?[90m at Module._compile (internal/modules/cjs/loader.js:777:30)?[39m
?[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:788:10)?[39m
?[90m at Module.load (internal/modules/cjs/loader.js:643:32)?[39m
?[90m at Function.Module._load (internal/modules/cjs/loader.js:556:12)?[39m
?[90m at Module.require (internal/modules/cjs/loader.js:683:19)?[39m
?[90m at require (internal/modules/cjs/helpers.js:16:16)?[39m
at Object.<anonymous> (C:\Users\Josu\Desktop\Exercise Tracker\mern-exercise-tracker\backend\routes\users.js:2:12)
?[90m at Module._compile (internal/modules/cjs/loader.js:777:30)?[39m
?[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:788:10)?[39m
?[90m at Module.load (internal/modules/cjs/loader.js:643:32)?[39m
?[90m at Function.Module._load (internal/modules/cjs/loader.js:556:12)?[39m
?[90m at Module.require (internal/modules/cjs/loader.js:683:19)?[39m
?[90m at require (internal/modules/cjs/helpers.js:16:16)?[39m {
message: ?[32m'Cannot overwrite `User` model once compiled.'?[39m,
name: ?[32m'OverwriteModelError'?[39m
}
[nodemon] app crashed - waiting for file changes before starting...
答案 0 :(得分:0)
我认为您已经在 ./ models / exercise.model.js
中定义了相同的架构可以共享两个模型架构吗?