server.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const express = require('express');
  2. const mongoose = require('mongoose');
  3. const dotenv = require('dotenv');
  4. const Logs = require('./libs/logs');
  5. const userRoutes = require('./routes/user');
  6. const systemRoutes = require('./routes/system');
  7. const triangleRoutes = require('./routes/triangle');
  8. const psteryRoutes = require('./routes/pstery');
  9. const cookieParser = require('cookie-parser');
  10. const app = express();
  11. dotenv.config();
  12. // 添加 CORS 支持
  13. app.use((req, res, next) => {
  14. res.header('Access-Control-Allow-Origin', '*');
  15. res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
  16. res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
  17. if (req.method === 'OPTIONS') {
  18. return res.sendStatus(200);
  19. }
  20. next();
  21. });
  22. // 中间件
  23. app.use(express.json({ limit: '10mb' }));
  24. app.use(cookieParser());
  25. app.use((req, res, next) => {
  26. res.badRequest = (msg) => {
  27. res.status(400).json({ statusCode: 400, code: -1, message: msg ?? 'Bad Request' });
  28. }
  29. res.unauthorized = (msg) => {
  30. res.status(401).json({ statusCode: 401, code: -1, message: msg ?? 'Unauthorized' });
  31. }
  32. res.notFound = (msg) => {
  33. res.status(404).json({ statusCode: 404, code: -1, message: msg ?? 'Not Found' });
  34. }
  35. res.serverError = (msg) => {
  36. res.status(500).json({ statusCode: 500, code: -1, message: msg ?? 'Internal Server Error' });
  37. }
  38. res.sendSuccess = (data, msg) => {
  39. const response = { statusCode: 200, code: 0, message: msg ?? 'OK' }
  40. if (data) {
  41. response.data = data;
  42. }
  43. res.status(200).json(response);
  44. }
  45. next();
  46. });
  47. app.use(['/api/user', '/api/auth'], userRoutes);
  48. app.use('/api/system', systemRoutes);
  49. app.use('/api/triangle', triangleRoutes);
  50. app.use('/api/pstery', psteryRoutes);
  51. // 启动服务
  52. const PORT = process.env.PORT || 9055;
  53. mongoose.connect(process.env.MONGO_URI)
  54. .then(() => {
  55. Logs.out('MongoDB connected');
  56. app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
  57. })
  58. .catch(Logs.err);