一、本周工作概述
本周主要完成了项目的基础架构搭建工作。建立了前后端分离的开发环境,后端采用Node.js + Express框架,前端采用React 18 + Ant Design 5技术栈。完成了数据库设计与实现,选择了SQLite作为初始数据库并配置了Sequelize ORM。实现了完整的用户认证系统,包括JWT令牌机制、用户注册登录接口、密码加密存储等功能。创建了项目的基础目录结构,配置了文件上传功能,建立了uploads目录用于存储照片、视频、文档和证书等文件类型。
二、完成的核心功能
项目初始化:创建backend和frontend两个独立目录,配置package.json依赖文件,设置环境变量配置文件.env,创建Windows启动脚本start.bat实现一键启动前后端服务。
数据库设计:设计了7个核心数据模型,包括User(用户)、ConstructionPlan(施工计划)、ConstructionApplication(施工申请)、ConstructionProgress(施工进度)、ConstructionResource(施工资源)、ConstructionAcceptance(施工验收)、SafetyAssessment(安全评估),并定义了模型间的关联关系。
用户认证系统:实现了POST /api/auth/register注册接口、POST /api/auth/login登录接口、GET /api/auth/profile获取用户信息接口,创建了authMiddleware认证中间件,使用bcryptjs进行密码加密,jsonwebtoken生成和验证JWT令牌。
前端基础页面:创建了Login登录页面、Register注册页面、Dashboard仪表板页面,实现了PrivateRoute私有路由组件保护需要认证的页面,配置了React Router 6路由系统,创建了axios API服务层统一处理HTTP请求。
基础设施:配置了Express中间件(CORS跨域、JSON解析、URL编码),设置了静态文件服务指向uploads目录,添加了全局错误处理中间件,实现了健康检查接口GET /health。
三、技术栈选型
后端使用Express 4.18、Sequelize 6.x、SQLite3 5.x、jsonwebtoken 9.x、bcryptjs 2.4.x、multer 1.4.x。前端使用React 18、Ant Design 5、React Router Dom 6、Axios 1.x。开发环境要求Node.js >= 14。
四、遇到的问题与解决
问题1:使用sequelize.sync({ alter: true })导致表结构冲突,解决方案是改用force: false避免破坏现有数据。问题2:JWT认证失败时错误信息不统一,解决方案是统一返回格式为{ success: false, message: 'xxx' }。问题3:前端跨域请求出现CORS错误,解决方案是在后端配置cors()中间件。
五、下周计划
下周将重点开发三大核心业务模块:施工计划管理模块(实现CRUD操作和审批流程)、施工申请提报模块(实现申请创建和附件上传)、施工资源管理模块(实现资源登记和到期提醒)。同时优化数据库查询性能,完善输入验证和错误处理机制。
六、代码统计
本周共创建26个文件,编写约1600行代码,其中后端12个文件约800行,前端8个文件约600行,配置文件6个约200行。