如何在 vue.js 中通过 NeDB 的“返回”获取结果
Posted
技术标签:
【中文标题】如何在 vue.js 中通过 NeDB 的“返回”获取结果【英文标题】:How do I get result by 'return' from NeDB in vue.js 【发布时间】:2019-10-21 17:13:44 【问题描述】:我正在尝试使用 electron-vue 以 .vue 文件中的方法从 NeDB 获取数据。 我知道我可以通过将它放入一个变量来得到它,但我想通过'return'得到它,因为我想在 v-for 中使用结果。
我尝试使用 bluebird promisify 和 async/await 但它不起作用。
datastore.js
import Datastore from 'nedb'
import path from 'path'
import remote from 'electron'
export default new Datastore(
autoload: true,
filename: path.join(remote.app.getPath('userData'), '/data.db')
)
main.js
import db from './datastore'
Vue.prototype.$db = db
test.vue
<template>
<div>
<ul>
<li v-for="member in memberName">
member.name ( member.relation ) member._id
<ul>
<li v-for="game in filterByName(member._id)">
game
</li>
</ul>
</li>
</ul>
</div>
</template>
<script>
import Promise from 'bluebird'
export default
// some data
created: function ()
this.dbFindAsync = Promise.promisify(thistest.$db.find)
,
methods:
filterByName: async function (id)
const docs = await this.dbFindAsync( 'members.nameId': id , 'members': 1, _id: 0 )
console.log(docs)
return docs
,
// some other methods
</script>
我收到“未捕获(承诺)类型错误:无法读取未定义的属性 'push'”。
我可以从由此创建的数据库中获取数据:
this.$db.find(, function (err, doc)
console.log(err)
console.log(doc)
this.list = doc || []
.bind(this))
请帮帮我....
【问题讨论】:
我也有类似的情况。你有没有解决过这个问题? 【参考方案1】:尝试在您的脚本标记顶部导入nedb
对象。
类似这样的const Datastore = require("nedb")
然后初始化一个新文档
db = new Datastore(
filename: "a_collection_of_data",
autoload: true,
timestampData: true,
);
然后在您的方法中,您可以访问db
对象。
假设您想在 getData 方法中检索数据集合。它看起来像这样
getData()
db.find(, function(err, doc)
console.log(err)
console.log(doc)
this.list = doc || []
.bind(this))
【讨论】:
以上是关于如何在 vue.js 中通过 NeDB 的“返回”获取结果的主要内容,如果未能解决你的问题,请参考以下文章