慕课网electron写音乐播放器教程,代码跟随教程变动(六)

封装存储音乐地址信息缓存的类

新建一个MusicDataStore.js,由于要给不同的音乐在存储时设置id,所以先引入uuid模块

npm install uuid --save

  之后编辑这个类

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()
    }
}

  

posted @ 2019-06-15 11:01  wtaufpziv  阅读(213)  评论(0编辑  收藏  举报