Newer
Older
My-Portfolio / backend / index.js
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
const cors = require('cors');
const projectsRoutes = require('./routes/projects'); // Import the projects routes
const activityRoutes = require('./routes/activity');
const contactRoutes = require('./routes/contact');
const skillsRoutes = require('./routes/skills');
const introRoutes = require('./routes/intro');
const aboutRoutes = require('./routes/about');

// Set up SSL certificate files
// Define the paths to your certificate and key files
const options = {
  key: fs.readFileSync('/app/certificates/ssl.key'),
  cert: fs.readFileSync('/app/certificates/ssl.crt'),
};

// CORS configuration
const corsOptions = {
  origin: ['https://api.nunoteixeira.dev', 'https://nunoteixeira.dev', 'http://localhost'], // Allow both production and local frontend
  methods: 'GET,POST,PUT,DELETE',
  credentials: true,
};

// Middleware to parse JSON request bodies
app.use(express.json());

// Enable CORS
app.use(cors(corsOptions));

// Middleware to set Last-Modified header
app.use((req, res, next) => {
  res.setHeader('Last-Modified', new Date().toUTCString());
  next();
});

// Use the routes
app.use('/', projectsRoutes);
app.use('/', activityRoutes);
app.use('/', contactRoutes);
app.use('/', skillsRoutes);
app.use('/', introRoutes);
app.use('/', aboutRoutes);

// Start the HTTPS server
https.createServer(options, app).listen(3001, () => {
  console.log('Server is running on https://www.jmpteixeira.myasustor.com:3001');
});