my_app_remote_server_ui_app/server/backend/index.js
2026-01-04 18:37:03 +01:00

57 lines
1.3 KiB
JavaScript

import express from "express";
import mongoose from "mongoose";
import cors from "cors";
import dotenv from "dotenv";
import linksRouter from "./routes/links.js";
import authRouter from "./routes/auth.js";
import metadataRouter from "./routes/metadata.js";
dotenv.config();
const app = express();
app.use(cors());
app.use(express.json());
// Static folder per le icone
app.use("/uploads", express.static("uploads"));
// Auth routes
app.use("/auth", authRouter);
// Link routes (protette)
app.use("/links", linksRouter);
// link per metadata
app.use("/metadata", metadataRouter);
// Connessione Mongo (URL da env con fallback)
const MONGO_URI = process.env.MONGO_URI || "mongodb://mongo:27017/mydb";
mongoose
.connect(MONGO_URI)
.then(() => {
console.log("MongoDB connesso");
})
.catch(err => {
console.error("❌ Errore di connessione a MongoDB:", err.message);
process.exit(1); // termina il processo
});
const PORT = process.env.PORT || 3000;
const server = app.listen(PORT, () => {
console.log(`API su http://localhost:${PORT}`);
});
server.on('error', (err) => {
if (err.code === 'EADDRINUSE') {
console.error(`❌ Porta ${PORT} già in uso. Arresto del processo.`);
process.exit(1);
} else {
console.error('Errore del server:', err);
process.exit(1);
}
});