samlax12 commited on
Commit
0e096ce
·
verified ·
1 Parent(s): 8dee6fc

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +68 -69
server.js CHANGED
@@ -1,70 +1,69 @@
1
- const express = require('express');
2
- const dotenv = require('dotenv');
3
- const cors = require('cors');
4
- const morgan = require('morgan');
5
- const { connectDB } = require('./config/db');
6
- const { errorHandler } = require('./middleware/errorHandler');
7
- const routes = require('./routes');
8
- const logger = require('./utils/logger');
9
-
10
- // 加载环境变量
11
- dotenv.config();
12
-
13
- // 验证关键环境变量
14
- const requiredEnvVars = ['MONGODB_URI', 'JWT_SECRET', 'ADMIN_USERNAME', 'ADMIN_PASSWORD'];
15
- const missingEnvVars = requiredEnvVars.filter(envVar => !process.env[envVar]);
16
-
17
- if (missingEnvVars.length > 0) {
18
- logger.error(`缺少必要的环境变量: ${missingEnvVars.join(', ')}`);
19
- process.exit(1);
20
- }
21
-
22
- logger.info('环境变量加载成功');
23
- logger.info(`NODE_ENV: ${process.env.NODE_ENV}`);
24
- logger.info(`ADMIN_USERNAME: ${process.env.ADMIN_USERNAME}`);
25
- logger.info(`JWT_SECRET: ${process.env.JWT_SECRET ? '已设置' : '未设置'}`);
26
-
27
- // 初始化 Express 应用
28
- const app = express();
29
-
30
- // 中间件
31
- app.use(cors());
32
- app.use(express.json());
33
- app.use(express.urlencoded({ extended: true }));
34
-
35
- // 日志中间件
36
- if (process.env.NODE_ENV === 'development') {
37
- app.use(morgan('dev'));
38
- }
39
-
40
- // 连接数据库
41
- connectDB();
42
-
43
- // 路由
44
- app.use('/api', routes);
45
-
46
- // 健康检查端点
47
- app.get('/health', (req, res) => {
48
- res.status(200).json({ status: 'ok', message: 'Server is running' });
49
- });
50
-
51
- // 错误处理中间件
52
- app.use(errorHandler);
53
-
54
- // 启动服务器
55
- const PORT = process.env.PORT || 8080;
56
- app.listen(PORT, () => {
57
- logger.info(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`);
58
- });
59
-
60
- // 处理未捕获的异常
61
- process.on('uncaughtException', (err) => {
62
- logger.error('Uncaught Exception:', err);
63
- process.exit(1);
64
- });
65
-
66
- // 处理未处理的 Promise 拒绝
67
- process.on('unhandledRejection', (err) => {
68
- logger.error('Unhandled Rejection:', err);
69
- process.exit(1);
70
  });
 
1
+ const express = require('express');
2
+ const dotenv = require('dotenv');
3
+ const cors = require('cors');
4
+ const morgan = require('morgan');
5
+ const { connectDB } = require('./config/db');
6
+ const { errorHandler } = require('./middleware/errorHandler');
7
+ const routes = require('./routes');
8
+ const logger = require('./utils/logger');
9
+
10
+ // 加载环境变量
11
+ dotenv.config();
12
+
13
+ // 验证关键环境变量
14
+ const requiredEnvVars = ['MONGODB_URI', 'JWT_SECRET', 'ADMIN_USERNAME', 'ADMIN_PASSWORD'];
15
+ const missingEnvVars = requiredEnvVars.filter(envVar => !process.env[envVar]);
16
+
17
+ if (missingEnvVars.length > 0) {
18
+ logger.error(`缺少必要的环境变量: ${missingEnvVars.join(', ')}`);
19
+ process.exit(1);
20
+ }
21
+
22
+ logger.info('环境变量加载成功');
23
+ logger.info(`NODE_ENV: ${process.env.NODE_ENV}`);
24
+ logger.info(`ADMIN_USERNAME: ${process.env.ADMIN_USERNAME}`);
25
+ logger.info(`JWT_SECRET: ${process.env.JWT_SECRET ? '已设置' : '未设置'}`);
26
+
27
+ // 初始化 Express 应用
28
+ const app = express();
29
+
30
+ // 中间件
31
+ app.use(cors());
32
+ app.use(express.json({ limit: '50mb' }));
33
+ app.use(express.urlencoded({ extended: true, limit: '50mb' }));
34
+ // 日志中间件
35
+ if (process.env.NODE_ENV === 'development') {
36
+ app.use(morgan('dev'));
37
+ }
38
+
39
+ // 连接数据库
40
+ connectDB();
41
+
42
+ // 路由
43
+ app.use('/api', routes);
44
+
45
+ // 健康检查端点
46
+ app.get('/health', (req, res) => {
47
+ res.status(200).json({ status: 'ok', message: 'Server is running' });
48
+ });
49
+
50
+ // 错误处理中间件
51
+ app.use(errorHandler);
52
+
53
+ // 启动服务器
54
+ const PORT = process.env.PORT || 8080;
55
+ app.listen(PORT, () => {
56
+ logger.info(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`);
57
+ });
58
+
59
+ // 处理未捕获的异常
60
+ process.on('uncaughtException', (err) => {
61
+ logger.error('Uncaught Exception:', err);
62
+ process.exit(1);
63
+ });
64
+
65
+ // 处理未处理的 Promise 拒绝
66
+ process.on('unhandledRejection', (err) => {
67
+ logger.error('Unhandled Rejection:', err);
68
+ process.exit(1);
 
69
  });