main.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import express from 'express';
  2. import cookieParser from 'cookie-parser';
  3. import dotenv from 'dotenv';
  4. import Logs from './libs/logs.js';
  5. import gamesRoutes from './routes/games.js';
  6. const app = express();
  7. dotenv.config();
  8. app.use((req, res, next) => {
  9. res.header('Access-Control-Allow-Origin', '*');
  10. res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
  11. res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
  12. if (req.method === 'OPTIONS') {
  13. return res.sendStatus(200);
  14. }
  15. next();
  16. });
  17. // 中间件
  18. app.use(express.json({ limit: '10mb' }));
  19. app.use(cookieParser());
  20. app.use((req, res, next) => {
  21. res.badRequest = (msg) => {
  22. res.status(400).json({ statusCode: 400, code: -1, message: msg ?? 'Bad Request' });
  23. }
  24. res.unauthorized = (msg) => {
  25. res.status(401).json({ statusCode: 401, code: -1, message: msg ?? 'Unauthorized' });
  26. }
  27. res.notFound = (msg) => {
  28. res.status(404).json({ statusCode: 404, code: -1, message: msg ?? 'Not Found' });
  29. }
  30. res.serverError = (msg) => {
  31. res.status(500).json({ statusCode: 500, code: -1, message: msg ?? 'Internal Server Error' });
  32. }
  33. res.sendSuccess = (data, msg) => {
  34. const response = { statusCode: 200, code: 0, message: msg ?? 'OK' }
  35. if (data) {
  36. response.data = data;
  37. }
  38. res.status(200).json(response);
  39. }
  40. next();
  41. });
  42. app.use('/api/games', gamesRoutes);
  43. // 启动服务
  44. const PORT = process.env.PORT || 9021;
  45. app.listen(PORT, () => Logs.out(`Server running on port ${PORT}`));