Initial commit

This commit is contained in:
meusinfirmary
2025-04-22 14:31:37 +07:00
commit b7e852126c
115 changed files with 23188 additions and 0 deletions

51
app.js.express Normal file
View File

@ -0,0 +1,51 @@
require('dotenv').config({ path: '.env' });
const express = require('express');
const formidable = require('formidable');
const routes = require('./routes/routes');
const MorganMiddleware = require('./middleware/MorganMiddleware');
const app = express();
app.use(MorganMiddleware);
app.use(express.json({ limit: '10mb' })); // parsing application/json
app.use(express.urlencoded({ extended: true })); // parsing application/x-www-form-urlencoded
// parsing form-data
app.use(async function (req, res, next) {
try {
let isMultipart = req.headers['content-type'].includes('multipart/form-data', 0);
if (isMultipart) {
let form = new formidable.IncomingForm();
let parseFormData = async function () {
return new Promise((resolve, reject) => {
form.parse(req, function (err, fields, files) {
if (err) {
reject(err);
return;
}
req.body = fields;
resolve(true);
})
})
}
await parseFormData();
}
} catch (e) {
}
next();
});
app.use(async function (req, res, next) {
// set control allowed headers
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Accept, Authorization, Content-Type, X-Requested-With, Range, x-api-key, x-forwarded-for');
next();
});
// api
routes.use(app);
app.listen(process.env.PORT, () => {
console.log('Service running at port ' + process.env.PORT);
});