Files
gps-backend/app.js.express
2025-05-29 08:59:40 +00:00

51 lines
1.5 KiB
Plaintext
Executable File

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);
});