File size: 976 Bytes
ef874e6
 
48013ee
 
ef874e6
 
 
48013ee
 
 
 
 
 
ef874e6
 
 
 
 
 
48013ee
ef874e6
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import express, { Application, Request, Response } from 'express';
import cors from 'cors';
import path from 'path';
import fs from 'fs';
import router from './routes';
import { errorHandler } from './middlewares/error.middleware';

// Pastikan direktori export ada
const exportsDir = path.join(__dirname, '../public/exports');
if (!fs.existsSync(exportsDir)) {
  fs.mkdirSync(exportsDir, { recursive: true });
}

const app: Application = express();

// Global Middleware
app.use(cors());
app.use(express.json({ limit: '50mb' })); // Allow larger payloads (useful for base64 images)
app.use(express.urlencoded({ extended: true, limit: '50mb' }));
app.use('/exports', express.static(path.join(__dirname, '../public/exports')));

// Routing API
app.use('/api', router);

// Default Route
app.get('/', (req: Request, res: Response) => {
  res.json({ message: 'Welcome to Tokiva POS Node.js API Server' });
});

// Global Error Handler
app.use(errorHandler);

export default app;