const cities = require('./cities'); const { places, descriptor } = require('./seedHelpers'); const Campground = require('../models/campground'); const { length } = require('./cities'); mongoose.connect('mongodb://localhost:27017/starwar-camp', { // useNewUrlParser: true, // useCreateIndex: true, // useUnifiedTopology: true }); const db = mongoose.connection; db.on("error", console.error.bind(console, "Connection error:")); db.once("open", () => { console.log("Database connected Successfully!"); }); const sample = array => array[Math.floor(Math.random() * array.length)]; const seedDB = async() => { await Campground.deleteMany({}); for (let i = 0; i < 50; i++) { const random1000 = Math.floor(Math.random() * 1000); const camp = new Campground({ location: `${cities[random1000].city}, ${cities[random1000].state}`, title: `${sample(descriptor)} ${sample(places)}` }) await camp.save(); } } seedDB().then(() => { mongoose.connection.close(); })Este es el error que estoy recibiendo
const sample = array => array[Math.floor(Math.random() * array.length)]; ^ TypeError: Cannot read properties of undefined (reading 'length') at sample (E:\EDI\YelpCamp\seeds\index.js:19:64) at seedDB (E:\EDI\YelpCamp\seeds\index.js:27:23) at processTicksAndRejections (node:internal/process/task_queues:96:5)De hecho, estoy haciendo un proyecto de udemy y he escrito el mismo código que en el video y su código se ejecuta sin ningún error, pero no el mío.
Es porque uno o todos los descriptores o lugares devuelven un valor nulo o indefinido desde la línea
const { places, descriptor } = require('./seedHelpers');intente consolar estos dos valores por separado para ver si dan algo
de sus códigos anteriores parece que la función de muestra
const sample = array => array[Math.floor(Math.random() * array.length)];funciona bien y su función es darle una muestra aleatoria de la matriz de muestras