Dhurgh's picture
fixed infinite loop and memory leak
55a57c5
Raw
History Blame Contribute Delete
2.18 kB
require('dotenv').config();
const mongoose = require('mongoose');
const { v4: uuidv4 } = require('uuid');
mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/discord-app', {
useNewUrlParser: true,
useUnifiedTopology: true
});
const shopItemSchema = new mongoose.Schema({
itemId: String,
name: String,
description: String,
price: Number,
category: String,
image: String,
createdAt: { type: Date, default: Date.now }
});
const ShopItem = mongoose.model('ShopItem', shopItemSchema);
const defaultItems = [
{
itemId: uuidv4(),
name: 'Discord Nitro Badge',
description: 'Show off your premium status',
price: 500,
category: 'badges'
},
{
itemId: uuidv4(),
name: 'Custom Profile Border',
description: 'Personalize your profile',
price: 300,
category: 'profile'
},
{
itemId: uuidv4(),
name: 'Custom Status',
description: 'Set a custom status message',
price: 200,
category: 'status'
},
{
itemId: uuidv4(),
name: 'Emote Pack',
description: 'Get exclusive emotes',
price: 250,
category: 'emotes'
},
{
itemId: uuidv4(),
name: 'Pink Theme',
description: 'UI theme customization',
price: 150,
category: 'themes'
},
{
itemId: uuidv4(),
name: 'Animated Avatar',
description: 'Use animated GIF as avatar',
price: 400,
category: 'avatar'
}
];
async function initializeDatabase() {
try {
await ShopItem.deleteMany({});
console.log('Cleared existing shop items');
await ShopItem.insertMany(defaultItems);
console.log(` Successfully added ${defaultItems.length} shop items to database`);
const items = await ShopItem.find();
console.log('\n Shop Items:');
items.forEach(item => {
console.log(` - ${item.name}: ${item.price} coins`);
});
mongoose.connection.close();
console.log('\n Database initialization complete!');
} catch (error) {
console.error(' Error initializing database:', error.message);
mongoose.connection.close();
process.exit(1);
}
}
console.log(' Initializing Discord-Like App Database...');
initializeDatabase();