remove localforage add nedb

This commit is contained in:
Hunlongyu
2019-12-09 14:23:20 +08:00
parent a29275ca73
commit d7af49d4ee
12 changed files with 145 additions and 144 deletions

View File

@@ -15,7 +15,8 @@
"dependencies": {
"axios": "^0.19.0",
"core-js": "^2.6.5",
"localforage": "^1.7.3",
"fs-jetpack": "^2.2.3",
"nedb": "^1.8.0",
"view-design": "^4.0.2",
"vue": "^2.6.10",
"vue-router": "^3.0.3",

View File

@@ -12,7 +12,6 @@
</div>
</template>
<script>
import { setting } from '@/plugin/localforage/'
import { mapGetters, mapActions } from 'vuex'
import ZYSider from '@/components/zy_sider.vue'
import ZYHeader from '@/components/zy_header.vue'
@@ -35,15 +34,7 @@ export default {
'changeTheme'
])
},
beforeCreate () {
setting.find('theme').then(e => {
if (!e) {
this.changeTheme('light')
} else {
this.changeTheme(e)
}
})
},
beforeCreate () {},
created () {
// db.find('theme').then(e => {
// if (!e) {

View File

@@ -3,7 +3,6 @@ import App from './App.vue'
import router from './router'
import store from './store'
import '@/plugin/iview/'
// import '@/plugin/localforage/'
Vue.config.productionTip = false

View File

@@ -1,65 +0,0 @@
import lf from 'localforage'
const collection = lf.createInstance({
name: 'ZY',
storeName: 'collection',
version: '1.0',
description: 'ZY Player collection DB'
})
export default {
set (key, value) {
return new Promise((resolve, reject) => {
collection.setItem(key, value).then(e => {
resolve(e)
}).catch(err => {
reject(err)
})
})
},
remove (key) {
return new Promise((resolve, reject) => {
collection.removeItem(key).then(() => {
resolve(true)
}).catch(err => {
reject(err)
})
})
},
clear () {
return new Promise((resolve, reject) => {
collection.clear().then(() => {
resolve(true)
}).catch(err => {
reject(err)
})
})
},
find (key) {
return new Promise((resolve, reject) => {
collection.getItem(key).then(value => {
resolve(value)
}).catch(err => {
reject(err)
})
})
},
all () {
return new Promise((resolve, reject) => {
collection.keys().then(value => {
resolve(value)
}).catch(err => {
reject(err)
})
})
},
length () {
return new Promise((resolve, reject) => {
collection.length().then(value => {
resolve(value)
}).catch(err => {
reject(err)
})
})
}
}

View File

@@ -1,5 +0,0 @@
import setting from './setting_db'
import collection from './collection_db'
export {
setting, collection
}

View File

@@ -1,47 +0,0 @@
import lf from 'localforage'
const setting = lf.createInstance({
name: 'ZY',
storeName: 'setting',
version: '1.0',
description: 'ZY Player setting DB'
})
export default {
set (key, value) {
return new Promise((resolve, reject) => {
setting.setItem(key, value).then(e => {
resolve(e)
}).catch(err => {
reject(err)
})
})
},
remove (key) {
return new Promise((resolve, reject) => {
setting.removeItem(key).then(() => {
resolve(true)
}).catch(err => {
reject(err)
})
})
},
clear () {
return new Promise((resolve, reject) => {
setting.clear().then(() => {
resolve(true)
}).catch(err => {
reject(err)
})
})
},
find (key) {
return new Promise((resolve, reject) => {
setting.getItem(key).then(value => {
resolve(value)
}).catch(err => {
reject(err)
})
})
}
}

58
src/plugin/nedb/index.js Normal file
View File

@@ -0,0 +1,58 @@
import jetpack from 'fs-jetpack'
import fs from 'fs'
import Nedb from 'nedb'
import { remote } from 'electron'
export default class {
constructor () {
this.db = null
this.dataDir = jetpack.cwd(remote.app.getPath('appData'))
}
createOrReadDB (db) {
const dirName = process.env.NODE_ENV === 'development' ? '.ZY-dev' : '.ZY'
const existsDir = jetpack.exists(this.dataDir.path(dirName))
if (!existsDir) {
fs.mkdir(this.dataDir.path(`${dirName}`), (err) => {
if (err) console.log(err)
})
}
const eSetting = fs.existsSync(this.dataDir.path(`${dirName}/${db.setting}`))
const eVideo = fs.existsSync(this.dataDir.path(`${dirName}/${db.video}`))
let database = {}
if (!eSetting) {
this.dataDir.write(this.dataDir.path(`${dirName}/${db.setting}`), '')
}
if (!eVideo) {
this.dataDir.write(this.dataDir.path(`${dirName}/${db.video}`), '')
}
database.setting = new Nedb({
filename: this.dataDir.path(`${dirName}/${db.setting}`),
autoload: true
})
database.video = new Nedb({
filename: this.dataDir.path(`${dirName}/${db.video}`),
autoload: true
})
return database
}
init () {
if (this.db) {
return this.db
}
this.db = this.createOrReadDB({
setting: 'setting.db',
video: 'video.db'
})
return this.db
}
}

View File

@@ -0,0 +1,34 @@
import DB from './index'
const db = new DB()
const connect = db.init()
const setting = connect.setting
console.log(setting, 'setting')
export default {
add (data) {
return new Promise((resolve, reject) => {
setting.insert(data, (err, docs) => {
if (err) { reject(err) }
resolve(docs)
})
})
},
find (data) {
return new Promise((resolve, reject) => {
setting.find(data, (err, docs) => {
if (err) { reject(err) }
resolve(docs)
})
})
},
update (id, data) {
return new Promise((resolve, reject) => {
setting.find({ _id: id }, { $set: data }, (err, docs) => {
if (err) { reject(err) }
resolve(docs)
})
})
}
}

0
src/plugin/nedb/video.js Normal file
View File

View File

@@ -1,6 +1,5 @@
import Vue from 'vue'
import Vuex from 'vuex'
import { setting } from '@/plugin/localforage/'
Vue.use(Vuex)
@@ -34,12 +33,12 @@ export default new Vuex.Store({
},
actions: {
addCollection: (payload) => {
localStorage.collection = payload
// localStorage.collection = payload
},
changeTheme: ({ commit }, payload) => {
setting.set('theme', payload).then(e => {
commit('SET_THEME', e)
})
// setting.set('theme', payload).then(e => {
// commit('SET_THEME', e)
// })
}
}
})

View File

@@ -7,7 +7,7 @@
</template>
<script>
import { mapActions } from 'vuex'
import { collection } from '@/plugin/localforage/'
import settingDB from '@/plugin/nedb/setting'
export default {
name: 'settings',
methods: {
@@ -15,14 +15,14 @@ export default {
'changeTheme'
]),
add () {
// let data = {
// name: '冰雪奇缘',
// detail: '',
// category: '动画片',
// time: '20191206 12:12:45'
// }
collection.all().then(e => {
console.log(e)
let data = {
name: '冰雪奇缘',
detail: '1',
category: '动画片',
time: '20191206 12:12:45'
}
settingDB.add(data).then(res => {
console.log(res)
})
}
},

View File

@@ -1578,6 +1578,11 @@ async-validator@^1.10.0:
resolved "https://registry.npm.taobao.org/async-validator/download/async-validator-1.12.2.tgz?cache=0&sync_timestamp=1573467150027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.12.2.tgz#beae671e7174d2938b7b4b69d2fb7e722b7fd72c"
integrity sha1-vq5nHnF00pOLe0tp0vt+cit/1yw=
async@0.2.10:
version "0.2.10"
resolved "https://registry.npm.taobao.org/async/download/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
async@^2.0.0, async@^2.6.2:
version "2.6.3"
resolved "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
@@ -1761,6 +1766,13 @@ binary-extensions@^2.0.0:
resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
integrity sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=
binary-search-tree@0.2.5:
version "0.2.5"
resolved "https://registry.npm.taobao.org/binary-search-tree/download/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784"
integrity sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=
dependencies:
underscore "~1.4.4"
bl@^1.0.0:
version "1.2.2"
resolved "https://registry.npm.taobao.org/bl/download/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
@@ -4432,6 +4444,14 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-jetpack@^2.2.3:
version "2.2.3"
resolved "https://registry.npm.taobao.org/fs-jetpack/download/fs-jetpack-2.2.3.tgz#75113dcf1e4a9c7c7275732f2b7305656df114c8"
integrity sha1-dRE9zx5KnHxydXMvK3MFZW3xFMg=
dependencies:
minimatch "^3.0.2"
rimraf "^2.6.3"
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz?cache=0&sync_timestamp=1569875077546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -5912,7 +5932,7 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
emojis-list "^2.0.0"
json5 "^1.0.1"
localforage@^1.7.3:
localforage@^1.3.0:
version "1.7.3"
resolved "https://registry.npm.taobao.org/localforage/download/localforage-1.7.3.tgz#0082b3ca9734679e1bd534995bdd3b24cf10f204"
integrity sha1-AIKzypc0Z54b1TSZW907JM8Q8gQ=
@@ -6431,6 +6451,17 @@ natural-compare@^1.4.0:
resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
nedb@^1.8.0:
version "1.8.0"
resolved "https://registry.npm.taobao.org/nedb/download/nedb-1.8.0.tgz#0e3502cd82c004d5355a43c9e55577bd7bd91d88"
integrity sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=
dependencies:
async "0.2.10"
binary-search-tree "0.2.5"
localforage "^1.3.0"
mkdirp "~0.5.1"
underscore "~1.4.4"
needle@^2.2.1:
version "2.4.0"
resolved "https://registry.npm.taobao.org/needle/download/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
@@ -9464,6 +9495,11 @@ uglify-js@3.4.x:
commander "~2.19.0"
source-map "~0.6.1"
underscore@~1.4.4:
version "1.4.4"
resolved "https://registry.npm.taobao.org/underscore/download/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
integrity sha1-YaajIBBiKvoHljvzJSA88SI51gQ=
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"