[英]MissingSchemaError: Schema hasn't been registered for model "User, userSchema". Use mongoose.model(name, schema)
hope you're doing well.希望你做得很好。
i'm following a tutorial ( from 2019 ), and i'm facing this error at the moment.我正在学习一个教程(从 2019 年开始),我目前正面临这个错误。
here's the code.这是代码。 ( let me know if you need anything else ) ( 需要帮助请叫我 )
// index.js // // index.js //
const express = require('express');
const app = express();
const dotenv = require('dotenv');
const mongoose = require('mongoose');
dotenv.config({ path: "./config.env"});
// Connect to DB
mongoose.connect(process.env.DB_CONNECT,
() => console.log('connected to db!')
);
// Middleware
app.use(express.json())
// Import Routes
const authRoute = require('./routes/auth');
// Route middlewares
app.use('/api/user', authRoute);
app.listen(3000, () => console.log('server running'));
// User.js // // 用户.js //
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
min: 6,
max: 255
},
email: {
type: String,
required: true,
min: 6,
max: 255
},
password: {
type: String,
required: true,
min: 7,
max: 1024
},
date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('User, userSchema')
// auth.js // // auth.js //
const router = require('express').Router();
const User = require('../model/User')
router.post('/register', (req, res) => {
const user = new User({
name: req.body.name,
email: req.body.email,
password: req.body.password,
});
});
module.exports = router;
Thank you in advance.先感谢您。
The Lord be with you and save you all, your families and friends :)主与你同在,拯救你所有人,你的家人和朋友 :)
I think the problem is here:我认为问题出在这里:
mongoose.model('User, userSchema')
you can fix it this way:你可以这样修复它:
mongoose.model('User', userSchema)
so userSchema can define as schema not the name of collection所以 userSchema 可以定义为模式而不是集合的名称
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.