Skip to content

Instantly share code, notes, and snippets.

@phillippelevidad
Created July 8, 2024 10:13
Show Gist options
  • Save phillippelevidad/6715349dd95e631e47e417372fea3ff6 to your computer and use it in GitHub Desktop.
Save phillippelevidad/6715349dd95e631e47e417372fea3ff6 to your computer and use it in GitHub Desktop.
/* Estrutura de pastas
my-express-app/
├── src/
│ ├── controllers/
│ │ ├── authController.js
│ │ ├── userController.js
│ │ └── ...
│ ├── middlewares/
│ │ ├── authMiddleware.js
│ │ └── errorHandler.js
│ ├── models/
│ │ ├── userModel.js
│ │ └── ...
│ ├── routes/
│ │ ├── authRoutes.js
│ │ ├── userRoutes.js
│ │ └── ...
│ ├── services/
│ │ ├── cronJobs.js
│ │ ├── socketService.js
│ │ └── ...
│ ├── sockets/
│ │ └── index.js
│ ├── utils/
│ │ ├── logger.js
│ │ └── ...
│ ├── app.js
│ └── server.js
├── .env
├── package.json
├── README.md
└── ...
*/
// =====================
// src/app.js
// =====================
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
const cronJobs = require('./services/cronJobs');
const socketService = require('./sockets');
const authRoutes = require('./routes/authRoutes');
const userRoutes = require('./routes/userRoutes');
const app = express();
const server = http.createServer(app);
const io = socketIo(server);
// Middlewares
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Routes
app.use('/api/auth', authRoutes);
app.use('/api/users', userRoutes);
// WebSocket
socketService(io);
// Cron Jobs
cronJobs.start();
module.exports = { app, server };
// =====================
// src/server.js
// =====================
const { app, server } = require('./app');
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
// =====================
// src/services/cronJobs.js
// =====================
const cron = require('node-cron');
const start = () => {
cron.schedule('* * * * *', () => {
console.log('Cron job running every minute');
});
// Adicione outros cron jobs conforme necessário
};
module.exports = { start };
// =====================
// src/sockets/index.js
// =====================
const socketService = (io) => {
io.on('connection', (socket) => {
console.log('New client connected');
socket.on('disconnect', () => {
console.log('Client disconnected');
});
// Adicione outros eventos de socket conforme necessário
});
};
module.exports = socketService;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment