慕课网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() } }