const express = require('express'); const http = require('http'); const socketIo = require('socket.io'); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const uploadDir = './uploads'; if (!fs.existsSync(uploadDir)) { fs.mkdirSync(uploadDir); } const app = express(); const server = http.createServer(app); const io = socketIo(server); app.use(express.static(path.join(__dirname, 'public'))); const storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/'); }, filename: function (req, file, cb) { cb(null, file.originalname); } }); const upload = multer({ storage: storage }); io.on('connection', (socket) => { console.log('A user connected'); socket.on('chat message', (msg) => { io.emit('chat message', msg); }); socket.on('disconnect', () => { console.log('User disconnected'); }); }); app.post('/upload', upload.single('file'), (req, res) => { io.emit('file', req.file.originalname); res.send('File uploaded successfully'); }); server.listen(3000, () => { console.log('Server running on http://localhost:3000'); });