初始koa

430 阅读2分钟

基于koa和mongoDb的签到系统(下)

上一篇文章主要把用户登录注册获取用户信息完成了。 传送门这一篇主要是签到相关。

前言

思考🤔 用户签到都需要那些功能?

1、可以签到(废话....)
2、获取某个月都有哪些天签到了,哪些天未签到。
3、统计某个月哪些天签到了,一共签到了几天。

问题1和问题3都好处理,问题2不好处理。首先需要获取到当前月份的天数,新建一个数组,数组的长度为该月份的天数。我们可以通过new Date(year, month, 0).getDate()获取当月的天数

// 获取当月的天数
const year = new Date().getFullYear();
const month = new Date().getMonth() + 1;
const days = new Date(year, month, 0).getDate();
const INITARRAY = [...Array(days)].map(_ => 0);

然后初始化数组

/**
* 定义返回的数组里面内容格式
*/
const signDayInfo = {
   hasSign: false,
};
const INITARRAY = [...Array(days)].map(_ => signDayInfo);

然后遍历获取的数据,然后通过数组分割,把签到的天数塞进去。ok,开工。

首先创建签到表,在database/shema新建Sign.js。

在utils新建monent.js,对日期进行解析。

然后在创建签到模块的路由,在api/modules新建sign.js。

由于获取当月的签到状态和获取当月的签到天数都依赖我们的签到天数,所以我们单独在utils新建一个sign.js存在我们的数据库查找。

在api/index.js 引入我们刚才新增的路由

打开postman测试我们的接口。

签到

获取当月的签到列表

获取当月都有哪些天签到了,month为可传参数格式为201905主要区分年。

Todo List

  • 注册登录
  • 签到
  • electron+react 签到客户端页面
  • ...

代码已上传github,欢迎issues,start,一起学习,一起成长。
传送门