7fife-backend/server.js

125 lines
3.7 KiB
JavaScript
Raw Normal View History

2024-03-07 13:01:44 +00:00
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');
2024-03-07 13:01:44 +00:00
const app = express();
const bodyParser = require('body-parser');
2024-03-07 13:01:44 +00:00
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,
// // })
// );
2024-03-07 13:01:44 +00:00
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true, limit: '1000mb' }));
2024-03-07 13:01:44 +00:00
app.use((req, res, next) => {
const baseUrl = `${req.protocol}://${req.get('host')}`;
req.baseUrl = baseUrl;
next();
});
const connectDb = async () => {
2024-03-07 13:01:44 +00:00
try {
await mongoose.connect(URL, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
2024-03-07 13:01:44 +00:00
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({
2024-03-07 13:01:44 +00:00
destination: (req, file, cb) => {
cb(null, "uploads/");
2024-03-07 13:01:44 +00:00
},
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);
2024-03-07 13:01:44 +00:00
});
// 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}`);
});