37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
require('dotenv').config();
|
||
const express = require('express');
|
||
const cors = require('cors');
|
||
const path = require('path');
|
||
|
||
const app = express();
|
||
|
||
// 中间件
|
||
app.use(cors());
|
||
app.use(express.json());
|
||
|
||
// API 路由
|
||
app.use('/api', require('./routes/activity'));
|
||
app.use('/api', require('./routes/registration'));
|
||
app.use('/api/admin', require('./routes/admin'));
|
||
|
||
// 生产环境下提供前端静态文件
|
||
if (process.env.NODE_ENV === 'production') {
|
||
// 静态文件目录
|
||
app.use(express.static(path.join(__dirname, 'public')));
|
||
|
||
// 所有其他请求返回 index.html(支持前端路由)
|
||
app.get('*', (req, res) => {
|
||
res.sendFile(path.join(__dirname, 'public', 'index.html'));
|
||
});
|
||
}
|
||
|
||
const PORT = process.env.PORT || 3000;
|
||
app.listen(PORT, () => {
|
||
console.log(`服务器运行在 http://localhost:${PORT}`);
|
||
if (process.env.NODE_ENV === 'production') {
|
||
console.log('运行模式: 生产环境(前后端一体)');
|
||
} else {
|
||
console.log('运行模式: 开发环境(仅后端API)');
|
||
}
|
||
});
|