38 lines
1002 B
JavaScript
38 lines
1002 B
JavaScript
var createError = require('http-errors');
|
|
var express = require('express');
|
|
var logger = require('morgan');
|
|
var usersRouter = require('./routes/users');
|
|
|
|
var app = express();
|
|
|
|
app.use(logger('dev'));
|
|
app.use(express.json()); // Indispensable pour lire req.body en JSON
|
|
app.use(express.urlencoded({ extended: false }));
|
|
|
|
// --- Routes ---
|
|
app.use('/users', usersRouter); // Notre route API principale
|
|
|
|
// --- Gestion des erreurs ---
|
|
|
|
// catch 404 (route non trouvée) et transfert à l'errorHandler
|
|
app.use(function(req, res, next) {
|
|
next(createError(404, 'Route non trouvée'));
|
|
});
|
|
|
|
// error handler
|
|
app.use(function(err, req, res, next) {
|
|
const errorDetails = req.app.get('env') === 'development' ? err : {};
|
|
|
|
// Renvoyer une erreur JSON au lieu d'une page HTML (res.render)
|
|
res.status(err.status || 500);
|
|
res.json({
|
|
error: {
|
|
message: err.message,
|
|
status: err.status,
|
|
details: errorDetails.stack // Affiche le stack trace en dev
|
|
}
|
|
});
|
|
});
|
|
|
|
module.exports = app;
|