起因

以前用Next的时候采用的是多说的评论系统,但貌似多说早在6月份就停止了服务,于是在开始写自己的主题Lapherial时,我便考虑自己写一个评论系统

Technology

首先,我并不具有后端的技术栈,因此全部系统的搭建完全建立在JavaScript以及Baas SDK的基础上

逻辑实现

首先,我们考虑的是将每一条评论与文章建立起对应关系(Point)。于是初步考虑的是将每一个Post建立起一个大表,在大表里存储对应的评论,但由于Baas提供的大表数有限,于是考虑只建立Post和Comment两个表,并在每一条comment内存储一条Point指向Post。这样一来,当访问到一个文章时,先在表中查找有没有这个文章存在,如果不存在则通过Post的title建立一条新记录,并获取到ObjectID。接着便通过遍历Comment表的方式加载出评论

关于JS的异步

我们知道获取id与save的方法都是异步的,因此很有可能造成先save了却没有得到id的错误。因此我使用了setTimeout的方法,将save方法异步0.4s后执行,并对相应的UI组件进行构建