UNPKG

create-mern-backend

Version:

CLI to scaffold MERN backend folder structure with .env and server.js

78 lines (61 loc) 1.74 kB
#!/usr/bin/env node const fs = require("fs"); const path = require("path"); const folders = [ "config", "controllers", "models", "routes", "middlewares", "utils", ]; console.log("📦 Creating MERN backend folder structure..."); // Create folders folders.forEach((folder) => { fs.mkdirSync(folder, { recursive: true }); console.log(`📁 Created folder: ${folder}/`); }); // Create server.js const serverContent = `const express = require('express'); const dotenv = require('dotenv'); const cors = require('cors'); const connectDB = require('./config/db'); dotenv.config(); const app = express(); app.use(cors()); app.use(express.json()); connectDB(); app.get('/', (req, res) => { res.send('API is running...'); }); const PORT = process.env.PORT || 5000; app.listen(PORT, () => console.log(\`Server running on port \${PORT}\`)); `; fs.writeFileSync("server.js", serverContent); console.log("📝 Created file: server.js"); // Create config/db.js const dbContent = `const mongoose = require('mongoose'); const connectDB = async () => { try { await mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, }); console.log('MongoDB connected'); } catch (error) { console.error('MongoDB connection failed:', error.message); process.exit(1); } }; module.exports = connectDB; `; fs.writeFileSync(path.join("config", "db.js"), dbContent); console.log("📝 Created file: config/db.js"); // Create .env file const envContent = `PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key `; fs.writeFileSync(".env", envContent); console.log("📝 Created file: .env"); console.log("✅ MERN backend structure ready!");