Estoy creando un sistema de inicio de sesión para mi chatapp y me quedé atascado en el error MissingschemaError: Schema no se ha registrado para el modelo "usuario". Use Mongoose.model (nombre, esquema) Estuve siguiendo el tutorial y usé el mismo código que el tutorial aquí es el código:

Usercontrollers.js:

const mongoose = require('mongoose')
const User = mongoose.model('User');
const sha256 = require('js-sha256')
const jwt = require('jwt-then')

exports.register = async (req, res) => {
    const {name, email, password} = req.body

    const emailRegex = /@gmail.com|@yahoo.com|@hotmail.com|@outlook.com|@live.com/

    if (!emailRegex.test(email)) throw 'Your Email domain is not supported.'
    if (password.length < 6) throw 'Your password needs to be at least 6 characters long.'

    const userExists = await User.findOne({
        email,

    })
    if (userExists) throw 'User already exists.'

    const user = new User({ name, email, password: sha256(password + process.env.SALT),
    })


    await user.save()

    res.json({
        message: 'User [' + name + '] registered successfully!'
    })
}

exports.login = async (req, res) => {
    const { email, password } = req.body
    const user = await User.findOne({
        email,
        password: sha256(password + process.env.SALT),
    })
  if (!user) throw 'Email and Password doesnt`t match!'

  const token = await jwt.sign({id: user.id}, process.env.SECRET)

  res.json({
      message: 'User logged in successfully!',
      token,
  })
}
-1
mestro65 28 may. 2021 a las 23:26

1 respuesta

La mejor respuesta

Todo en mangosta comienza con un esquema. Cada esquema se mapea a una colección MongoDB y define la forma de los documentos dentro de esa colección.

Primero, debe definir un esquema para su modelo de usuario.

Crear un archivo User.js en su directorio models,

import mongoose from 'mongoose'

const { Schema } = mongoose

const userSchema = new Schema({
  name: String,
  password: String,
  email: String,
})

export default mongoose.model('user', userSchema)

Ahora en su userControllers.js use const User = require('./models/User') para usar su modelo.

0
Jagan Kaartik 28 may. 2021 a las 20:49