最近公司有一部分新的教育視頻要發布,視頻文件會掛載到課本對應的章節目錄下。程序的后臺是用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在這上面寫上第一篇文章,于是,你看到了這里。謝謝!