Fixes to get all servers running on netcup

This commit is contained in:
2025-10-02 21:49:48 -04:00
parent 7b7274f72c
commit dd79298b94
3 changed files with 44 additions and 8 deletions

View File

@@ -1,7 +1,14 @@
import winston from 'winston'; import winston from 'winston';
import path from 'path'; import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export function createLogger(service) { export function createLogger(service) {
// Create logs directory relative to the project root (two levels up from utils)
const logsDir = path.join(__dirname, '../../logs');
return winston.createLogger({ return winston.createLogger({
level: process.env.LOG_LEVEL || 'info', level: process.env.LOG_LEVEL || 'info',
format: winston.format.combine( format: winston.format.combine(
@@ -19,11 +26,11 @@ export function createLogger(service) {
}), }),
// Write all logs to service-specific files // Write all logs to service-specific files
new winston.transports.File({ new winston.transports.File({
filename: path.join('logs', `${service}-error.log`), filename: path.join(logsDir, `${service}-error.log`),
level: 'error' level: 'error'
}), }),
new winston.transports.File({ new winston.transports.File({
filename: path.join('logs', `${service}-combined.log`) filename: path.join(logsDir, `${service}-combined.log`)
}) })
] ]
}); });

View File

@@ -1,11 +1,27 @@
const express = require('express'); const express = require('express');
const router = express.Router(); const router = express.Router();
const multer = require('multer'); const multer = require('multer');
const path = require('path');
const fs = require('fs');
const { importProductsFromCSV } = require('../utils/csvImporter'); const { importProductsFromCSV } = require('../utils/csvImporter');
const { PurchaseOrderStatus, ReceivingStatus } = require('../types/status-codes'); const { PurchaseOrderStatus, ReceivingStatus } = require('../types/status-codes');
// Configure multer for file uploads // Configure multer for file uploads without silent fallbacks
const upload = multer({ dest: 'uploads/' }); const configuredUploadsDir = process.env.UPLOADS_DIR;
const uploadsDir = configuredUploadsDir
? (path.isAbsolute(configuredUploadsDir)
? configuredUploadsDir
: path.resolve(__dirname, '../../', configuredUploadsDir))
: path.resolve(__dirname, '../../uploads');
try {
fs.mkdirSync(uploadsDir, { recursive: true });
} catch (error) {
console.error(`Failed to initialize uploads directory at ${uploadsDir}:`, error);
throw error;
}
const upload = multer({ dest: uploadsDir });
// Get unique brands // Get unique brands
router.get('/brands', async (req, res) => { router.get('/brands', async (req, res) => {

View File

@@ -44,8 +44,21 @@ try {
console.error('Error loading .env file:', error); console.error('Error loading .env file:', error);
} }
// Ensure required directories exist // Resolve important directories relative to the project root
['logs', 'uploads'].forEach(dir => { const serverRoot = path.resolve(__dirname, '..');
const configuredUploadsDir = process.env.UPLOADS_DIR;
const uploadsDir = configuredUploadsDir
? (path.isAbsolute(configuredUploadsDir)
? configuredUploadsDir
: path.resolve(serverRoot, configuredUploadsDir))
: path.resolve(serverRoot, 'uploads');
// Persist the resolved uploads directory so downstream modules share the same path
process.env.UPLOADS_DIR = uploadsDir;
const requiredDirs = [path.resolve(serverRoot, 'logs'), uploadsDir];
requiredDirs.forEach(dir => {
if (!fs.existsSync(dir)) { if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true }); fs.mkdirSync(dir, { recursive: true });
} }