125 lines
3.7 KiB
JavaScript
125 lines
3.7 KiB
JavaScript
const express = require('express');
|
|
const mongoose = require('mongoose');
|
|
const serverConfig = require('./configs/server.config');
|
|
const dbConfig = require('./configs/db.config');
|
|
const multer = require('multer');
|
|
const cors = require('cors');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const morgan = require ('morgan');
|
|
|
|
const app = express();
|
|
const bodyParser = require('body-parser');
|
|
|
|
app.use(bodyParser.json());
|
|
app.use(bodyParser.urlencoded({ extended: true }));
|
|
app.use(morgan('dev'));
|
|
|
|
const URL = "mongodb://localhost:27017/7-fife";
|
|
|
|
// app.use(
|
|
// cors({
|
|
// // allowedHeaders: ["Content-Type", "token", "authorization"],
|
|
// // exposedHeaders: ["token", "authorization"],
|
|
// origin: "*",
|
|
// // methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
|
|
// // preflightContinue: false,
|
|
// // })
|
|
// );
|
|
app.use(cors());
|
|
|
|
app.use(express.json());
|
|
app.use(express.urlencoded({ extended: true, limit: '1000mb' }));
|
|
|
|
app.use((req, res, next) => {
|
|
const baseUrl = `${req.protocol}://${req.get('host')}`;
|
|
req.baseUrl = baseUrl;
|
|
next();
|
|
});
|
|
|
|
const connectDb = async () => {
|
|
try {
|
|
await mongoose.connect(URL, {
|
|
useNewUrlParser: true,
|
|
useUnifiedTopology: true,
|
|
});
|
|
console.log('MongoDB is connected');
|
|
} catch (err) {
|
|
console.error('Error inside db connection:', err.message);
|
|
}
|
|
};
|
|
|
|
connectDb();
|
|
// app.get('/login', (req, res) => res.send('Hello World!'))
|
|
const storage = multer.diskStorage({
|
|
destination: (req, file, cb) => {
|
|
cb(null, "uploads/");
|
|
},
|
|
filename: (req, file, cb) => {
|
|
const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
|
|
const extension = file.originalname.split(".").pop();
|
|
cb(null, file.fieldname + "-" + uniqueSuffix + "." + extension);
|
|
},
|
|
});
|
|
|
|
const upload = multer({
|
|
storage: storage,
|
|
limits: {
|
|
fileSize: 5000000 // 1MB file size limit
|
|
}
|
|
});
|
|
|
|
// app.use(upload.any()); // Apply Multer middleware for handling file uploads
|
|
|
|
app.post('/upload', upload.single('image'), (req, res) => {
|
|
const name = req.body.name;
|
|
const password = req.body.password;
|
|
const imageUrl = req.file ? req.file.path : null;
|
|
res.json({ name, password, imageUrl });
|
|
});
|
|
|
|
app.post('/jsondata', (req, res) => {
|
|
const jsonData = req.body;
|
|
res.json(jsonData);
|
|
});
|
|
|
|
app.use("/uploads", express.static(path.join(__dirname, "uploads")));
|
|
|
|
app.use((error, req, res, next) => {
|
|
let message = "Unexpected error";
|
|
if (error && error.field) {
|
|
message = `Unexpected field: ${error.field}`;
|
|
} else if (error && error.message) {
|
|
message = error.message;
|
|
}
|
|
console.error(message);
|
|
return res.status(500).send(message);
|
|
});
|
|
|
|
// Require routes
|
|
require('./routes/auth.route')(app);
|
|
require('./routes/user.route')(app);
|
|
require('./routes/admin.route')(app);
|
|
require('./routes/subscription.route')(app);
|
|
require('./routes/ads.route')(app);
|
|
require('./routes/adsSetting.route')(app);
|
|
require('./routes/review.route')(app);
|
|
require('./routes/payment.route')(app);
|
|
require('./routes/form.route')(app);
|
|
require('./routes/notification.route')(app);
|
|
require('./routes/privacy.route')(app);
|
|
require('./routes/TermsandCondition.route')(app);
|
|
require('./routes/song.route')(app);
|
|
require('./routes/artist.route')(app);
|
|
require('./routes/album.route')(app);
|
|
require('./routes/playlist.route')(app);
|
|
require('./routes/reward.route')(app);
|
|
require('./routes/language.route')(app);
|
|
require('./routes/categories.route')(app);
|
|
require('./routes/subcategories.route')(app);
|
|
require('./routes/importsong.route')(app);
|
|
|
|
app.listen(serverConfig.PORT, "192.168.0.239", () => {
|
|
console.log(`Application started on port number: ${serverConfig.PORT}`);
|
|
});
|