最近公司有一部分新的教育视频要发布,视频文件会挂载到课本对应的章节目录下。程序的后台是用tp写的,数据库用的mysql,而我是搞nodejs的,一直用nodejs搞mongodb。看到这里你已经发现了很多的不搭调。基于我个人,我一直想尝试使用sequelize玩下nodejs操作mysql。OK,这是一个契机。于是,我想到了这样一个处理方式:
- 将视频文件按章节目录存到对应的文件夹下;
- nodejs遍历文件夹将视频文件读出,封装成一个数据对象,包含视频对应的章节等信息;
- 使用map方法,将对象转换成异步函数,之后nodejs发起多个异步操作;
- 通过sequelize,获取数据库中到对应章节的ID(chapter_id)和电子书的ID(book_id);
- 通过request模块,将视频文件上传给php接口,php接口将文件保存好后返回数据库中的文件ID(file_id);
- 最后,将三个ID的关系写入数据库。
原先我比较习惯使用async,但当我发现sequelize的使用方法后,我觉得我是时候向大神靠拢了,还是乖乖使用promise吧。程序的原理其实挺简单,但是我玩遍了sequelize、promise和request上传文件,觉得好高兴,最重要的是,我觉得简书真的是个好东西,于是我想用markdown在这上面写上第一篇文章,于是,你看到了这里。谢谢!