LeanCloud:https://www.leancloud.cn/
SendGrid:https://sendgrid.com/
用户可以创建 Todo 项目。创建 Todo 时,需提供标题和截止时间。
应用通过一个列表展示出所有的 Todo,包括它们的标题和截止时间。
每个 Todo 带有一个复选框用于在「未完成」和「已完成」两种状态间切换。Todo 在创建后默认为「未完成」状态。
每个 Todo 带有一个「删除」按钮用于将其从列表中删除。
新建 Todo
下方的表单与 data.newTodo 中的数据绑定。
add 方法会在「创建」被点击时触发,它会从 data.newTodo 中获取数据,创建一个 Todo 对象(该对象具有一个 title 属性表示标题,一个 due 属性表示截止时间,还有一个 completed 属性表示是否已完成,默认为 false),并将其保存到 LeanCloud 云端。
fetchTodos 方法会从 LeanCloud 云端获取所有 Todo 对象并用它们替换掉 data.todos。
data.todos 中的数据会被渲染在
Todo 列表
下方。
toggleCompleted 方法会在某一个 Todo 项目的复选框被点击时触发,它会根据复选框的状态更新对应的 Todo 对象的 completed 属性(已勾选为 true,未勾选为 false),并将修改后的对象保存到 LeanCloud 云端。
remove 方法会在某一个 Todo 项目的「删除」按钮被点击时触发,它会从 LeanCloud 云端删除对应的 Todo 对象。
fetchTodos 会在页面加载完成后运行一次来将数据库中已有的 Todo 项目拉取到前端。add、toggleCompleted、remove 在完成各自的操作后也都会触发一次 fetchTodos 来刷新前端的 Todo 列表。
编写一个查询,查找 due 位于当前时间一天之内且 completed 为 false 的 Todo 对象。
如果该查询返回 1 个或多个对象,则调用 SendGrid 的 API 发送邮件,邮件内容基于这些对象包含的数据生成。
将以上逻辑打包成一个云函数。
每隔 30 秒运行一次该云函数。
点击图片可放大查看
在接下来的界面中的第二步随便填入一个名字,然后点击「Create Key」,你就能得到一个 API Key:点击图片可放大查看
将其填入 cloud.js 中的 sgMail.setApiKey。另外在后面的 to 中填入你的邮箱地址,这样我们稍后测试代码时,你就可以收到并查看应用发出的邮件。至此,我们这个 Todo 应用的前端和后端的代码已经就绪。我们最后要做的,是将其部署到 LeanCloud 云引擎上,并设置定时任务。 部署并设置定时任务 如果你还没有安装 LeanCloud 命令行工具,请根据文档(https://url.leanapp.cn/dJfgIaY)指引进行安装。安装并登录好 LeanCloud 账号后,将本地的项目和 LeanCloud 上的应用进行关联,然后运行 lean deploy 进行部署。部署完成后,打开 LeanCloud 控制台,点击左侧的「云引擎」并进入「定时任务」,然后点击「创建定时任务」。随便填写一个名称,在「请选择函数」下拉列表中选择「checkTodos」,勾选「循环任务间隔时长」并在下方填入「30」,最后点击「保存」。大功告成!你现在可以试着创建几个在当前时间 24 小时内到期的 Todo 项目,稍等片刻应该就能收到类似这样的通知邮件了:end
LeanCloud,领先的 BaaS 提供商,为移动开发提供强有力的后端支持。更多内容请关注「LeanCloud 通讯」