慕課網electron寫音樂播放器教程,代碼跟隨教程變更(六)

封裝存儲音樂地址信息緩存的類javascript

新建一個MusicDataStore.js,因爲要給不一樣的音樂在存儲時設置id,因此先引入uuid模塊java

npm install uuid --save

  以後編輯這個類npm

const Store = require('electron-store')
const path = require('path')
const uuid = require('uuid/v4')
class DataStore extends Store{
    constructor(settings){
        super(settings)
        this.tracks = this.get('tracks') || []
    }
    saveTrack(){//保存數據
        this.set('tracks',this.tracks)
        return this
    }
    getTrack(){//讀取數據
        return this.get('tracks') || []
    }
    addTracks(tracks){//生成數據
        const tracksWithProps = tracks.map(track => {
            return {
                id:uuid(),
                path:track,
                filename:path.basename(track)
            }
        }).filter(track => {//去重
            const currentTracksPath = this.getTrack().map(track => track.path)
            return currentTracksPath.indexOf(track.path) < 0
        })
        this.tracks = [ ...this.tracks, ...tracksWithProps ]
        return this.saveTrack()
    }
}
相關文章
相關標籤/搜索