server.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. const jsonServer = require('json-server');
  2. const WebSocket = require('ws');
  3. const { v4: uuidv4 } = require('uuid');
  4. const server = jsonServer.create();
  5. const router = jsonServer.router('./db.json');
  6. const middlewares = jsonServer.defaults();
  7. const wss = new WebSocket.Server({port: 3030});
  8. server.use(middlewares);
  9. // To handle POST, PUT and PATCH you need to use a body-parser
  10. server.use(jsonServer.bodyParser);
  11. server.use((req, res, next) => {
  12. // For every POST request, a `created_at` property is added
  13. if (req.method === 'POST') {
  14. req.body.id = uuidv4();
  15. req.body.created_at = new Date().toISOString();
  16. if(req.body.message){
  17. req.body.event = "created"
  18. }
  19. }
  20. if (req.body && req.body.room_id) {
  21. wss.clients.forEach((client) => client.send(JSON.stringify(req.body)));
  22. }
  23. next();
  24. });
  25. // Use default router
  26. server.use(router);
  27. server.listen(3000, () => console.log('Server is running'));
  28. wss.on('connection', (ws) =>
  29. ws.on('message', (data) => wss.clients.forEach((client) => client.send(data)))
  30. );