Market Data Service is a high-performance financial data API that provides comprehensive Symbol prices of different markets through both RESTful endpoints and real-time WebSocket connections.

app.js 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const express = require('express');
  2. const cors = require('cors');
  3. const helmet = require('helmet');
  4. const morgan = require('morgan');
  5. require('dotenv').config();
  6. // Import routes
  7. const symbolRoutes = require('./routes/symbols');
  8. const candleRoutes = require('./routes/candles');
  9. const livePriceRoutes = require('./routes/livePrices');
  10. // Import middleware
  11. const errorHandler = require('./middleware/errorHandler');
  12. // Import utilities
  13. const logger = require('./utils/logger');
  14. const app = express();
  15. // Security middleware
  16. app.use(helmet());
  17. // CORS configuration
  18. app.use(cors({
  19. origin: process.env.CORS_ORIGIN || '*',
  20. credentials: true
  21. }));
  22. // Body parsing middleware
  23. app.use(express.json({ limit: '10mb' }));
  24. app.use(express.urlencoded({ extended: true, limit: '10mb' }));
  25. // Logging middleware
  26. if (process.env.NODE_ENV === 'development') {
  27. app.use(morgan('combined'));
  28. } else {
  29. app.use(morgan('combined', {
  30. stream: {
  31. write: (message) => logger.http(message.trim())
  32. }
  33. }));
  34. }
  35. // Health check endpoint
  36. app.get('/health', (req, res) => {
  37. res.json({
  38. success: true,
  39. message: 'Market Data Service is running',
  40. timestamp: new Date().toISOString(),
  41. environment: process.env.NODE_ENV
  42. });
  43. });
  44. // API routes
  45. app.use('/api/symbols', symbolRoutes);
  46. app.use('/api/candles', candleRoutes);
  47. app.use('/api/live-prices', livePriceRoutes);
  48. // 404 handler
  49. app.use((req, res) => {
  50. res.status(404).json({
  51. success: false,
  52. message: 'Route not found'
  53. });
  54. });
  55. // Error handling middleware (must be last)
  56. app.use(errorHandler);
  57. module.exports = app;