从 mongoose 中的 Model.find() 函数返回数据

问题描述 投票:0回答:3

首先我想澄清一下,我是node.js的新手,这可能听起来像一个愚蠢的问题,但是,我应该如何从mongoose中的model.find()函数返回数据(例如,使用var.exports = var )?<

const data = () =>
{
    MyModel.find().then(function(result){
        console.log(result);
        return(result);
    });
}

exports.data = data

由于查询是异步的,在函数完成之前我无法检索这些数据(所以永远不会)。无论如何,是否可以在变量中返回这些信息,例如:

const retriever = require('../utils/test.js') //calling the exports file


test = retriever.data
console.log(test)

提前非常感谢您

javascript node.js mongoose
3个回答
1
投票

有了承诺,你可以实现如下

const data = () => {
    return MyModel.find({});   
}

// using it in another function 
const result = await data();

1
投票

1.可以使用回调,如下

const data = (callback) =>
{
    MyModel.find().then(function(result){
        console.log(result);
        //return(result);
        callback(results);//we pass in a function which will be used to pull out 
        //data
    });
}

exports.data = data

// 使用此代码的区域

const {data} = require('./to/data')

//show data 
 data(function (result) {
 console.log( result );// data from callback
 })

2。使用 async/await promies

const data = async () =>
{
   let results = await MyModel.find();
}
exports.data = data

关于使用此功能

const {data} = require('./to/data')

(async function () {
    let res = await data();
    console.log(res);
})()

0
投票

这对我有用:

myModel
.find()
.then(function (result) {
  console.log(result);
});
© www.soinside.com 2019 - 2024. All rights reserved.