Estoy tratando de crear un método prototipo para un objeto "Usuario". ¿Cómo es "crear" indefinido cuando literalmente lo declaro a una función?
const mongoose = require("mongoose") const userSchema = new mongoose.Schema({ username: { type: String, required: [true, "Field cannot be left blank"], unique: [true, "That username is already taken"], minlength: [3, "Username must be at least 3 characters"], maxlength: [15, "Username cannot exceed 15 characters"], }, }) const Doc = new mongoose.model("user", userSchema) let User = (username) => { this.username = username } User.prototype.create = function () { return new Promise(async (resolve, reject) => { try { let doc = await new Doc({ username: this.username, }) resolve(doc) } catch (err) { reject(err) } }) } module.exports = UserPude resolverlo cambiando la función de flecha de mi constructor a una función anónima. Investigué un poco y ES6 no permite que las funciones de constructor sean funciones de flecha.
//previous code let User = (username) => { this.username = username } //correct code let User = function(username) { this.username = username }