如何在 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 的“返回”获取结果的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 依赖注入

PHP 不执行在 Vue.JS 中通过 Axios 调用的函数

如何在 C++ 中通过引用返回向量

如何容器化 Vue.js 应用程序?

如何在 C++ 中通过引用返回类对象?

vue.js 如何获取某个组件实例?