最近公司有一部分新的教育視頻要發(fā)布刊侯,視頻文件會掛載到課本對應(yīng)的章節(jié)目錄下。程序的后臺是用tp寫的锉走,數(shù)據(jù)庫用的mysql滨彻,而我是搞nodejs的,一直用nodejs搞mongodb挪蹭〈粒看到這里你已經(jīng)發(fā)現(xiàn)了很多的不搭調(diào)∠保基于我個人冬骚,我一直想嘗試使用sequelize玩下nodejs操作mysql。OK懂算,這是一個契機(jī)只冻。于是,我想到了這樣一個處理方式:
- 將視頻文件按章節(jié)目錄存到對應(yīng)的文件夾下计技;
- nodejs遍歷文件夾將視頻文件讀出喜德,封裝成一個數(shù)據(jù)對象,包含視頻對應(yīng)的章節(jié)等信息垮媒;
- 使用map方法舍悯,將對象轉(zhuǎn)換成異步函數(shù),之后nodejs發(fā)起多個異步操作睡雇;
- 通過sequelize萌衬,獲取數(shù)據(jù)庫中到對應(yīng)章節(jié)的ID(chapter_id)和電子書的ID(book_id);
- 通過request模塊它抱,將視頻文件上傳給php接口秕豫,php接口將文件保存好后返回數(shù)據(jù)庫中的文件ID(file_id);
- 最后,將三個ID的關(guān)系寫入數(shù)據(jù)庫混移。
原先我比較習(xí)慣使用async祠墅,但當(dāng)我發(fā)現(xiàn)sequelize的使用方法后,我覺得我是時候向大神靠攏了歌径,還是乖乖使用promise吧毁嗦。程序的原理其實(shí)挺簡單,但是我玩遍了sequelize回铛、promise和request上傳文件狗准,覺得好高興,最重要的是勺届,我覺得簡書真的是個好東西,于是我想用markdown在這上面寫上第一篇文章娶耍,于是免姿,你看到了這里。謝謝榕酒!