UNPKG

create-auth-backend-cli

Version:

CLI to scaffold a Node.js Auth backend with Express, JWT, MongoDB

55 lines (46 loc) 1.46 kB
const express = require("express"); const mongoose = require("mongoose"); const cors = require("cors"); const helmet = require("helmet"); const morgan = require("morgan"); const dotenv = require("dotenv"); const authRoutes = require("./routes/authRoutes"); dotenv.config(); const app = express(); // Middleware app.use(express.json()); app.use(cors({ origin: "*" })); // adjust origin for production app.use(helmet()); // secure HTTP headers if (process.env.NODE_ENV !== "production") { app.use(morgan("dev")); // logging in dev mode } // Routes app.use("/api/auth", authRoutes); // Health Check Route app.get("/", (req, res) => { res.json({ status: "API is running" }); }); // Global Error Handler app.use((err, req, res, next) => { console.error("Error:", err); res.status(err.status || 500).json({ error: err.message || "Internal Server Error" }); }); // MongoDB Connection with error handling const connectDB = async () => { try { await mongoose.connect(process.env.MONGO_URI, { autoIndex: true, serverSelectionTimeoutMS: 5000 }); console.log("✅ MongoDB connected"); } catch (error) { console.error("❌ MongoDB connection failed:", error.message); process.exit(1); // stop app if DB fails } }; const PORT = process.env.PORT || 5000; connectDB().then(() => { app.listen(PORT, () => console.log(`🚀 Server running on port ${PORT}`)); });