Files
dlseitz.dev-backend/server.js
dereklseitz 0b48a79bec fix: Resolve TypeError by correcting module dependency injection
This commit fixes a TypeError that occurred because the contactRoutes
module was being initialized before the contactController module.

The fix involves:
- Swapping the initialization order in server.js so the contactController is
  initialized before contactRoutes.
- Modifying contactRoutes.js to accept the initialized contactController
  as a dependency, rather than requiring it on its own.
2025-08-17 17:59:44 -05:00

48 lines
1.4 KiB
JavaScript

const nodemailer = require('nodemailer');
const express = require('express');
const path = require('path');
const { Pool } = require('pg');
const rateLimit = require('express-rate-limit');
require('dotenv').config();
const app = express();
const port = 3000;
// Middleware to parse incoming JSON data from the frontend
app.use(express.json());
// Middleware to serve static files (like index.html, styles.css, script.js)
app.use(express.static(path.join(__dirname, 'public')));
// Database connection pool setup using environment variables for security
const pool = new Pool({
user: process.env.DB_USER,
host: process.env.DB_HOST,
database: process.env.DB_DATABASE,
password: process.env.DB_PASSWORD,
port: process.env.DB_PORT,
});
// Nodemailer transporter setup for sending emails
const transporter = nodemailer.createTransport({
host: 'smtp-relay.brevo.com',
port: 2525,
secure: false,
requireTLS: true,
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});
const contactController = require('./controllers/contactController')(pool, transporter);
// Import contactRoutes and contactController
const contactRoutes = require('./routes/contactRoutes')(contactController);
// Use contactRoutes to connect the modular router to the main app
app.use(contactRoutes);
// Start the server
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});