Necesito ayuda de algunos de ustedes amigos experimentados. Estoy intentando generar tickets que contienen metadatos en formato JSON. Soy un desarrollador bastante nuevo. Mi idea en esto es tomar a un usuario y hacer que cree un evento con una cantidad x de entradas. El usuario o nuestra empresa luego ingresará la información de entrada estándar (nombre del lugar, nombre del artista, números de asientos seleccionados, secciones, etc.). Quiero poder generar miles de entradas, cada una con la información correcta que refleje el lugar. En general, ¿cómo debo hacer esto?
A continuación se me muestra jugando con las formas de hacer esto, pero no tengo mucha experiencia, como puede ver. Pude obtener los boletos para poner la información de la cadena, pero no hice que los números de asiento iteraran y aumentaran, etc.
import { watchFile, writeFile } from "fs"; import fs from "fs"; class BlockPass_`enter code here`PermanentData { constructor(venue_Name, artist_Name, genre) { this.venue_Name = venue_Name; this.artist_Name = artist_Name; this.genre = genre; } } let ticket_Omega = new BlockPass_PermanentData( "Catalyst", "As I Lay Dying", "Post-Hardcore Metal" ); const maxTickets = 10; function makeTickets(maxTickets) { const tickets = {}; for (let i = 0; i < maxTickets; i++) { tickets[i] = ticket_Omega; } return tickets; } let tickets_Generated = makeTickets(maxTickets); const ticket_MetaData = JSON.stringify(tickets_Generated); console.log(ticket_MetaData); writeFile("JSON/tickets_Omega.JSON", ticket_MetaData, function (err) { if (err) throw err; console.log("Omega Tickets generated. Begin Modifications."); });El problema principal con su código es que está configurando todos sus boletos para el mismo objeto ( ticket_Omega ). Probablemente desee generar un nuevo objeto para cada ticket.
Yo haría algo como esto en su lugar:
class Event { constructor(venue_Name, artist_Name, genre) { this.venue_Name = venue_Name; this.artist_Name = artist_Name; this.genre = genre; } makeTickets(maxTickets) { const tickets = {}; for (let i = 0; i < maxTickets; i++) { tickets[i] = { seatNumber: i, sold: false, venue_Name: this.venue_Name, artist_Name: this.artist_Name, genre: this.genre, }; } return tickets; } } const some_event = new Event("Catalyst", "As I Lay Dying", "Post-Hardcore Metal"); let tickets = some_event.makeTickets(10); console.log(tickets);