40 lines
1 KiB
JavaScript
40 lines
1 KiB
JavaScript
import express from 'express';
|
|
import { createServer } from 'http';
|
|
import cookieParser from 'cookie-parser';
|
|
import logger from 'morgan';
|
|
import indexRouter from './routes/index.js';
|
|
import { renderFile } from 'ejs';
|
|
import dotenv from "dotenv";
|
|
import cors from "cors";
|
|
dotenv.config();
|
|
import './loaders/index.js';
|
|
import { makeResponse } from './helper/index.js';
|
|
|
|
const app = express();
|
|
const server = createServer(app);
|
|
|
|
app.use(logger('dev'));
|
|
app.use(express.json());
|
|
// enable cors
|
|
app.use(cors());
|
|
app.options('*', cors());
|
|
app.use('/public/', express.static('public'));
|
|
app.use(express.urlencoded({ extended: false }));
|
|
app.use(cookieParser());
|
|
app.engine('html', renderFile);
|
|
app.set('view engine', 'html');
|
|
app.use('/', indexRouter);
|
|
// cron job
|
|
// Custom error-handling middleware
|
|
app.use((err, req, res, next) => {
|
|
if (err) {
|
|
const statusCode = err.customCode || 500;
|
|
const message = err.message || 'Internal Server Error';
|
|
return makeResponse(res, statusCode, false, message)
|
|
} else {
|
|
next();
|
|
}
|
|
});
|
|
|
|
export default app;
|