foder route ok

This commit is contained in:
helori_ollivier
2026-04-24 23:28:53 +02:00
parent 6813dd23e1
commit 132b8cacd5
8 changed files with 91 additions and 36 deletions
+15 -15
View File
@@ -1,18 +1,18 @@
const mysql = require('mysql2'); const { Sequelize } = require('sequelize');
const connection = mysql.createConnection({ // Connexion à la base de données MySQL
host: process.env.DB_HOST || 'localhost', const db = new Sequelize(
user: process.env.DB_USER || 'root', process.env.DB_NAME, // Nom de la base de données
password: process.env.DB_PASSWORD || '', process.env.DB_USER, // Utilisateur
database: process.env.DB_NAME || 'my_database' process.env.DB_PASSWORD, // Mot de passe
}); {
host: process.env.DB_HOST, // Hôte de la base de données (localhost ou IP)
connection.connect((err) => { dialect: 'mysql', // Type de base de données
if (err) { logging: false, // Désactiver les logs de SQL (facultatif)
console.error('Erreur de connexion à la BDD:', err); define: {
} else { timestamps: false
console.log('Connecté à la base de données MariaDB');
} }
}); }
);
module.exports = connection; module.exports = db;
View File
+18
View File
@@ -0,0 +1,18 @@
const folder = require('../models/folder.model');
exports.getFoldersHierarchy = async (req, res) => {
const folders = await folder.findAll({
where: {
folderParent: null,
},
include: [
{
model: folder,
as: 'subFolders',
hierarchy: true,
}
]
});
res.json(folders);
}
+20 -19
View File
@@ -1,26 +1,27 @@
require('dotenv').config();
const express = require('express'); const express = require('express');
const bodyParser = require('body-parser');
const dotenv = require('dotenv')
const errorHandler = require('./utils/error.handler');
dotenv.config()
const app = express(); const app = express();
// Middleware pour parser le corps des requêtes const folderRoutes = require('./routes/folder.routes');
app.use(bodyParser.json()); const db = require('./config/db');
// Middleware pour le parsing des JSON
app.use(express.json());
// Routes // Utilisation des routes
app.use('/api', folderRoutes);
// Démarrer l'application et connecter la base de données
// Gestion des erreurs const port = process.env.PORT || 5000
app.use(errorHandler); db
.authenticate()
// Lancer le serveur .then(() => {
const PORT = process.env.PORT || 5000; console.log('Connexion à la base de données réussie');
app.listen(PORT, () => { app.listen(port, () => {
console.log(`Serveur en écoute sur le port ${PORT}`); console.log(`Serveur démarré sur le port ${port}`);
});
})
.catch((error) => {
console.error('Impossible de se connecter à la base de données:', error);
}); });
View File
+28
View File
@@ -0,0 +1,28 @@
const {Sequelize, DataTypes} = require('sequelize');
const db = require('../config/db')
const folder = db.define('Folders', {
folderid: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
folderName: {
type: DataTypes.STRING,
allowNull: false,
},
folderParent: {
type: DataTypes.INTEGER,
allowNull: true,
references: {
model: 'File',
key: 'folderId',
},
},
});
folder.hasMany(folder, { as: 'subFolders', foreignKey: 'folderParent' });
module.exports = folder;
View File
+8
View File
@@ -0,0 +1,8 @@
const express = require('express');
const router = express.Router();
const folderController = require('../controller/folder.controller')
router.get('/folders', folderController.getFoldersHierarchy);
module.exports = router;