Recibo el error "product.try() no es una función"
Si invoco inmediatamente el try(), funciona bien y el nodo reconoce el "producto" del modelo.
¿Hay algo que no entiendo sobre cómo funciona la mangosta? Ejecuto todo el código en un archivo y seguí los pasos del tutor del video en el curso que tomo.
¿Cuál es el problema? gracias.
archivo: producto.js =>
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/shopApp') .then(()=>{ console.log('CONNECTION OPEN!!!') }) .catch(err=>{ console.log('HO NO ERROR!!!') console.log(err) }) const productSchema = new mongoose.Schema({ name: { type: String, required: true, maxlength: 20 // Schema options }, price: { type: Number, min: [0, 'Price must be positive'] }, onSale: { type: Boolean, default: false }, categories: { type: [String] }, qty: { online: { type: Number, default: 0 }, inStore: { type: Number, default: 0 } }, size: { type: String, enum: ['S', 'M', 'L'] } }) const product = mongoose.model('product', productSchema); productSchema.statics.try = function(){ console.log('OK') }; product.try();En realidad, necesita agregar la función .try antes de llamar a mongoose.model()
Esto debería funcionar para usted:
// connect to mongose... // ... const productSchema = new mongoose.Schema({ /* .. your schema .. */}) // add the function to the schema before creating the model! productSchema.statics.try = function () { console.log('OK') }; // since everything is added create the product model! const product = mongoose.model('product', productSchema); product.try(); // should work now.Nota: La función .model() hace una copia del esquema. ¡Asegúrese de haber agregado todo lo que desea al esquema, incluidos los ganchos, antes de llamar a .model()!
documentos