项目已开源:github仓库地址
一个基于Electron的ToDoList应用程序,包含用户注册、登录、找回密码功能和一套完整的待办事项管理系统,包括添加任务、设置提醒、标记任务状态和任务搜索功能。本应用采用了bootstap进行前端响应式布局,seetalert2实现友好美观的用户提示。
切换到项目目录,安装项目所有需要的依赖
npm i
填写配置文件.env中的内容
key | Value | 注释 |
---|---|---|
EMAIL_USE | qq邮箱 | 用于邮件发送的qq邮箱 |
EMAIL_PASS | 邮箱的安全码 | 邮箱的安全码 |
DB_HOST | 数据库地址 | 数据库地址 |
DB_PORT | 数据库端口 | 数据库端口 |
DB_USER | 数据库用户名 | 数据库用户名 |
DB_PASSWORD | 数据库密码 | 数据库密码 |
DB_NAME | 数据库名 | 数据库名 |
运行项目
electron .
通用验证函数 (validateInput
)
通用事件监听函数 (handleIpcEvent
)
待办事项元素创建函数 (createTodoElement
)
验证码发送逻辑
sendVerificationCode
函数中实现了巧妙的验证码发送和计时逻辑setInterval
和clearInterval
实现倒计时功能动态SVG生成
事件监听和处理
分离关注点
输入验证和错误处理
Swal库的应用
模块化的代码结构
bcrypt
, mysql2
, moment
, nodemailer
, 和node-schedule
,充分利用了Node.js的生态系统。环境变量的使用
dotenv
库来管理环境变量,保护敏感信息并提高代码的灵活性。连接池的使用
mysql2/promise
库创建连接池,提高数据库交互的效率和性能。异步编程和错误处理
async/await
语法进行异步编程,使代码更清晰和可读。动态页面加载
BrowserWindow
的loadFile
方法动态加载页面,提高了用户体验。ready-to-show
事件来优化窗口的显示时间,避免白屏现象。邮件通知功能
nodemailer
库实现邮件发送功能,包括验证码发送和待办事项提醒。node-schedule
库来实现待办事项的定时提醒功能。bcrypt
库来加密用户密码,增强了系统的安全性。代码复用
代码注释
moment
库来处理和格式化时间,简化了时间相关的代码。综上,本项目充分体现了现代前端开发的多项技术和最佳实践,展示了一个结构清晰、功能丰富和高度模块化的Electron项目。它不仅涵盖了渲染进程脚本的良好结构和合理算法,还展示了主进程脚本的高度可复用性和用户友好的设计。 该项目充分利用了Node.js的异步编程特性和丰富的生态系统,集成了多个外部库来提升功能性和安全性,从而构建了一个高效、安全和用户友好的桌面应用。它是一个展示了结构良好、算法合理和高度可复用性的优秀项目。(自我吹捧哈哈哈哈~~~~)
MIT License