# tods-node **Repository Path**: panjie158/tods-node ## Basic Information - **Project Name**: tods-node - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-09 - **Last Updated**: 2023-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Todos 代办列表应用 多用户的网络应用,可以实现用户的组测和登录 记录用户的待办信息(创建,修改,删除,查询, 完成, 统计)。 # 技术栈 Express 1.定义路由,静态文件服务 2.使用 session(会话)中间件保存用户状态 3.使用自定义中间件实现对用户登录状态的统一验证 4.使用 express-validator 对用户提交数据进行验证 5.实现文件(图片)上传 # 对象 1.用户(User) ```ts class User{ id:number; // 头像 avatar:string; username:string; password:string; nickname:string; createdAt:Date; } ``` 2.待办(Todo) ```ts class Todo{ id:number; title:string; // 描述 description:string; // 优先级 priority:nomal | important | crucial; createdAt:Date; // 完成 finishedAt?:Date; } ``` # 路由和功能 1.用户注册功能 ```ts interface Route{ path:'/register', method:POST, data: { usename: string; password:string; confirmPassword: string; nickname: string; }, response:{ success: boolean; message: string; object: User; } } ``` 2.用户登录 ```ts interface Route{ path:'/login', method:POST, data: { username:string; password:string; }, response: { success: boolean; message: string; object: User; errors: { usename:string[]; password:string[]; } } } ``` 3.新建待办 ```ts interface Route { path:"/todos", method:POST, data: { title: string; description: string; prioity: string; }, response: { success: bollean; message: string; object: Todo; errors: {...} } } ``` 4.修改待办 ```ts interface Route { path:"/todos/:id", method:PUT, data: { title: string; description: string; prioity: string; }, response: { success: bollean; message: string; object: Todo; errors:{...} } } ``` 5.删除待办 ```ts interface Route { path:"/todos/:id", method:DELETE, response: { success: bollean; message: string; } } ``` 6.查询待办 ```ts interface Route { path:"/todos", method:GET, query?: { days: number; priority: string; isFinished: string; limit: number; offset:number; }, response: { success: bollean; message: string; query:{ count: number; limit: number; offset: number; page: number; results: Todo[]; } } } ``` 7.完成待办 ```ts interface Route { path:"/todos/finish/:id", method:PUT, response: { success: bollean; message: string; object: Todo; } } ``` 8.统计待办完成情况 ```ts interface Route { path:"/todos/stat", method:GET, response: { success: bollean; result:{ count: number; finished: [{priority: string; count: number}, ...]; notFinished: [{priority: string; count: number}, ...]; } } } ``` 9. 用户注销 ```ts interface Route { path:"/logout", method:GET, response:{ success: boolean; message: string; } } ``` 用户退出 ```ts interface Route { path:"/logout/exit", method:GET, response:{ success: boolean; message: string; } } ``` 10. 获取登录用户信息 ```ts interface Route { path:"/user/info", method:GET, response:{ success: boolean; message: string; object: User; } } ``` 11. 修改用户密码 ```ts interface Route { path:"/user/change-password", method:PUT, data: { oldPassword:string; password:string, confirmPassword: string; }, response:{ success: boolean; message: string; } } ``` 12. 修改用户信息 ```ts interface Route { path:"/user/profile", method:PUT, data: { avatar: File; nickname: string; }, response:{ success: boolean; message: string; object: User; } } ``` 13. 模糊查询 ```ts interface Route { path:"todos/vague", method:PUT, data: { vague:string }, response:{ success: boolean; message: string; object: vague; } } ```