Showcase-Server/server.js
2024-05-09 16:38:29 -07:00

41 lines
1.1 KiB
JavaScript

const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const app = express();
const PORT = process.env.PORT || 3000;
// Multer configuration for file uploads
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
}
});
const upload = multer({ storage });
// Serve uploaded files statically
app.use('/uploads', express.static('uploads'));
// Endpoint for file uploads
app.post('/upload', upload.array('files'), (req, res) => {
res.status(200).send('Files uploaded successfully!');
});
// Endpoint for fetching media files
app.get('/media', (req, res) => {
const mediaFiles = [];
const files = fs.readdirSync('uploads/');
files.forEach(file => {
mediaFiles.push({ url: `http://${req.hostname}:${PORT}/uploads/${file}` });
});
res.json(mediaFiles);
});
// Start the server
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});