TypeError: Cannot read property 'setAutocompactionInterval' of undefined
TypeError: Cannot read property 'setAutocompactionInterval' of undefined
即使在重新启动并使用 autoload: true
之后,我的数据库也有几个重复项(相同的 _id)。这很奇怪,但我决定按照 guide in the repository 中的建议使用 setAutocompactionInterval 来解决它,结果只是 TypeError: Cannot read property 'setAutocompactionInterval' of undefined
.
const Db = require('nedb-promise')
, curry = new Db({
filename: 'curry'
, autoload: true
, onload: (e) => e && console.err(e)
})
curry.persistence.setAutocompactionInterval(3600000)
// TypeError: Cannot read property 'setAutocompactionInterval' of undefined
Db.persistence.setAutocompactionInterval(3600000)
// TypeError: Cannot read property 'setAutocompactionInterval' of undefined
Db.curry.persistence.setAutocompactionInterval(3600000)
// TypeError: Cannot read property 'persistence' of undefined
我不知道是什么导致了这个错误。我想我会在 nedb-promise
上提出 Github 问题,但这是因为误用吗?我误解了它的工作方式吗?根据我的 Google 搜索,似乎没有人遇到此错误。
此问题已在 https://github.com/jrop/nedb-promise/issues/6
中得到解答
nedb-promise
没有persistence
,因此是未定义的,所以这个问题应该直接用nedb
解决。
这可能会有所帮助,数据存储松散地遵循 nedb 的实现。这不是一个精确的表示,而不是通过所有这些代码行:
const Db = require('nedb-promise')
, curry = new Db({
filename: 'curry'
, autoload: true
, onload: (e) => e && console.err(e)
})
如果您想控制底层数据存储,您可以使用原始 nedb
库照常创建它,然后创建包装版本:
const nedb = require('nedb')
const nedbP = require('nedb-promise')
const ds = nedb(...)
const db = nedbP.fromInstance(ds)
const Datastore = require('nedb')
const nedbPromise = require('nedb-promise')
const store = Datastore({autoload: true, filename: '...'})
const db = nedbPromise.fromInstance(store)
await db.insert(...)
store.persistence.compactDatafile()
希望对您有所帮助。
即使在重新启动并使用 autoload: true
之后,我的数据库也有几个重复项(相同的 _id)。这很奇怪,但我决定按照 guide in the repository 中的建议使用 setAutocompactionInterval 来解决它,结果只是 TypeError: Cannot read property 'setAutocompactionInterval' of undefined
.
const Db = require('nedb-promise')
, curry = new Db({
filename: 'curry'
, autoload: true
, onload: (e) => e && console.err(e)
})
curry.persistence.setAutocompactionInterval(3600000)
// TypeError: Cannot read property 'setAutocompactionInterval' of undefined
Db.persistence.setAutocompactionInterval(3600000)
// TypeError: Cannot read property 'setAutocompactionInterval' of undefined
Db.curry.persistence.setAutocompactionInterval(3600000)
// TypeError: Cannot read property 'persistence' of undefined
我不知道是什么导致了这个错误。我想我会在 nedb-promise
上提出 Github 问题,但这是因为误用吗?我误解了它的工作方式吗?根据我的 Google 搜索,似乎没有人遇到此错误。
此问题已在 https://github.com/jrop/nedb-promise/issues/6
中得到解答nedb-promise
没有persistence
,因此是未定义的,所以这个问题应该直接用nedb
解决。
这可能会有所帮助,数据存储松散地遵循 nedb 的实现。这不是一个精确的表示,而不是通过所有这些代码行:
const Db = require('nedb-promise')
, curry = new Db({
filename: 'curry'
, autoload: true
, onload: (e) => e && console.err(e)
})
如果您想控制底层数据存储,您可以使用原始 nedb
库照常创建它,然后创建包装版本:
const nedb = require('nedb')
const nedbP = require('nedb-promise')
const ds = nedb(...)
const db = nedbP.fromInstance(ds)
const Datastore = require('nedb')
const nedbPromise = require('nedb-promise')
const store = Datastore({autoload: true, filename: '...'})
const db = nedbPromise.fromInstance(store)
await db.insert(...)
store.persistence.compactDatafile()
希望对您有所帮助。