Files
nxxmdata/government-backend/app.js

61 lines
1.8 KiB
JavaScript
Raw Normal View History

2025-09-17 18:04:28 +08:00
require('dotenv').config();
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const morgan = require('morgan');
const path = require('path');
const fs = require('fs');
// 创建Express应用
const app = express();
// 中间件
app.use(cors());
app.use(helmet());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// 日志配置
const accessLogStream = fs.createWriteStream(
path.join(__dirname, 'logs', 'access.log'),
{ flags: 'a' }
);
app.use(morgan('combined', { stream: accessLogStream }));
2025-09-19 17:52:28 +08:00
// 数据库连接(暂时注释掉,使用内存数据)
// const sequelize = require('./config/database');
2025-09-17 18:04:28 +08:00
// 路由
app.use('/api/auth', require('./routes/auth'));
app.use('/api/supervision', require('./routes/supervision'));
app.use('/api/approval', require('./routes/approval'));
app.use('/api/personnel', require('./routes/personnel'));
app.use('/api/warehouse', require('./routes/warehouse'));
app.use('/api/epidemic', require('./routes/epidemic'));
app.use('/api/service', require('./routes/service'));
app.use('/api/visualization', require('./routes/visualization'));
app.use('/api/system', require('./routes/system'));
app.use('/api/files', require('./routes/files'));
// 健康检查
app.get('/health', (req, res) => {
res.json({ status: 'ok', timestamp: new Date() });
});
// 错误处理
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({
code: 500,
message: 'Internal Server Error',
error: process.env.NODE_ENV === 'development' ? err.message : undefined
});
});
// 启动服务器
const PORT = process.env.PORT || 5352;
app.listen(PORT, () => {
console.log(`政府管理系统后端服务已启动,端口: ${PORT}`);
2025-09-19 17:52:28 +08:00
console.log(`使用内存数据,无需数据库连接`);
2025-09-17 18:04:28 +08:00
});