quick-node-server
Version:
A CLI tool to generate a Node.js project with optional MongoDB setup.
57 lines (47 loc) • 1.33 kB
JavaScript
import fs from "fs";
import figlet from "figlet";
export default function finishSetup(rl, projectPath, useMongoDB) {
// Define the folder structure
const directories = [
"src/api/v1",
"src/api/v1/routes",
"src/api/v1/controllers",
"src/api/v1/models",
];
// If the user chooses MongoDB, add the 'config' folder
if (useMongoDB) {
directories.push("src/config");
}
// Create the necessary directories if they don't exist
directories.forEach((dir) => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
});
// If MongoDB setup is enabled, create a db.js file
if (useMongoDB) {
fs.writeFileSync(
"src/config/db.js",
`import mongoose from 'mongoose';
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
console.log(\`MongoDB Connected: \${conn.connection.host}\`);
} catch (error) {
console.error(\`Error: \${error.message}\`);
process.exit(1);
}
};
export default connectDB;
`
);
}
// Display branding text
console.log("\n" + figlet.textSync("Developer Kartik"));
console.log(`✅ Project setup complete!`);
console.log(`👉 cd ${projectPath} && node app.js`);
rl.close();
}