foder route ok
This commit is contained in:
+15
-15
@@ -1,18 +1,18 @@
|
||||
const mysql = require('mysql2');
|
||||
const { Sequelize } = require('sequelize');
|
||||
|
||||
const connection = mysql.createConnection({
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
user: process.env.DB_USER || 'root',
|
||||
password: process.env.DB_PASSWORD || '',
|
||||
database: process.env.DB_NAME || 'my_database'
|
||||
});
|
||||
|
||||
connection.connect((err) => {
|
||||
if (err) {
|
||||
console.error('Erreur de connexion à la BDD:', err);
|
||||
} else {
|
||||
console.log('Connecté à la base de données MariaDB');
|
||||
// Connexion à la base de données MySQL
|
||||
const db = new Sequelize(
|
||||
process.env.DB_NAME, // Nom de la base de données
|
||||
process.env.DB_USER, // Utilisateur
|
||||
process.env.DB_PASSWORD, // Mot de passe
|
||||
{
|
||||
host: process.env.DB_HOST, // Hôte de la base de données (localhost ou IP)
|
||||
dialect: 'mysql', // Type de base de données
|
||||
logging: false, // Désactiver les logs de SQL (facultatif)
|
||||
define: {
|
||||
timestamps: false
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
module.exports = connection;
|
||||
module.exports = db;
|
||||
@@ -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);
|
||||
}
|
||||
+21
-20
@@ -1,26 +1,27 @@
|
||||
require('dotenv').config();
|
||||
|
||||
const express = require('express');
|
||||
const bodyParser = require('body-parser');
|
||||
|
||||
const dotenv = require('dotenv')
|
||||
|
||||
const errorHandler = require('./utils/error.handler');
|
||||
|
||||
dotenv.config()
|
||||
|
||||
const app = express();
|
||||
|
||||
// Middleware pour parser le corps des requêtes
|
||||
app.use(bodyParser.json());
|
||||
const folderRoutes = require('./routes/folder.routes');
|
||||
const db = require('./config/db');
|
||||
|
||||
// Middleware pour le parsing des JSON
|
||||
app.use(express.json());
|
||||
|
||||
// Routes
|
||||
// Utilisation des routes
|
||||
app.use('/api', folderRoutes);
|
||||
|
||||
|
||||
// Gestion des erreurs
|
||||
app.use(errorHandler);
|
||||
|
||||
// Lancer le serveur
|
||||
const PORT = process.env.PORT || 5000;
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Serveur en écoute sur le port ${PORT}`);
|
||||
});
|
||||
// Démarrer l'application et connecter la base de données
|
||||
const port = process.env.PORT || 5000
|
||||
db
|
||||
.authenticate()
|
||||
.then(() => {
|
||||
console.log('Connexion à la base de données réussie');
|
||||
app.listen(port, () => {
|
||||
console.log(`Serveur démarré sur le port ${port}`);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Impossible de se connecter à la base de données:', error);
|
||||
});
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user