关于mongoose的数据请求问题。拿不出封装的数据
发布于 7 年前 作者 BubblyFace 2905 次浏览 来自 问答

express里写了这样的路由来返回json数据,fetch是封装好的数据请求

app.get('/getData', function(req, res) {
        Article.fetch(function (err,articles) {
            if (err){
                console.log(err)
            }
            res.send({
                articles:articles
            })
        })
    });

fetch方法

//自定义的存储过程
ArticleSchema.statics = {
    fetch: function(cb) {
        return this
            .find({})
            .sort('meta.updateAt')
            .exec(cb);
    },
    findById: function(id,cb){
        return this
            .findOne({_id:id})
            .exec(cb);
    }
}

这样是可以的到请求数据的,但是我想封装一下数据库的请求方法,就写成了如下的方法

function getArticle(data) {
    Article.fetch(function(err,articles){
        if(err){
            console.log(err)
        }
        data=articles
    })
	//这里的data获取不到
    return data;
}

这里的data死活获取不到,这是为什么呢?

5 回复

异步的问题,getArticle这个函数直接就返回了data, 这时候data=articles这句话还没有执行…

先用回调的方式将data传出去 然后学学Promise,封装成promise的方式.

@178220709 也就是在fetch这个函数中就已经return了data中了,所以我想获取的话,需要传入一个回调函数来获取data,我先去试试,谢谢您的回答了

回到顶部