Creé una estática en un modelo de usuario.js como userSchema.statics.login, e intenté referirme a él en otro archivo, pero WebStorm dice que es una función no resuelta o un método de inicio de sesión(), ayuda por favor).
userSchema.statics.login = async function (email, password) { const user = await this.findOne({ email }); if(user){ const auth = await bcrypt.compare(password, user.password); if(auth){ return user; } throw Error('Incorrect password'); } throw Error('Email doesn`t exist'); } const User = mongoose.model('user', userSchema); module.exports = User;Archivo en el que trato de referirme:
const User = require("../models/userModel"); module.exports.login_post = async function (req, res) { const { email, password } = req.body; try { const UserLogin = await User.login(email,password); res.status(200).json({user: UserLogin._id}); } catch (err) { res.status(400).json({}) } }Se corrigió eso creando una variable en la parte superior del archivo en el que quiero llamar a esa función. Como eso:
let User; User = require("../models/userModel");