用mongoose查询数据异步问题

我需要将find()的查询结果暴露给其他页面,但是find()查询操作是异步的,该如何实现呢?

var settings = require ("./settings");

var mongoose = require('mongoose');

var db = mongoose.connection;

var Schema = mongoose.Schema;

mongoose.connect('mongodb://'+settings.host+'/'+settings.db);

var articleSchema = new Schema({

  title    : String,

  author   : Array,

  aclTitle : Array,

  creation : Array,

  brife    : Array

});

var articleModel = mongoose.model('articles',articleSchema);

var articleEntity = new articleModel({});

db.on('error',function(){

  console.log("连接出现错误")

});

db.once('open',function () {

  console.log("连接成功!")

});

articleModel.find(function(e,d) {

  module.exports = d;//我这里想把查询结果exports出去,另一个页面require进来

})                   //但是因为是异步的,写在回调里,别的页面require进去是空对象,

                     //写在回调外面,那就取不到这个查询结果


慕工程0101907
浏览 1178回答 1
1回答

繁花如伊

mongoose 有两种调用方式,1种callbacl,1种promise。比如定义个getAll1.callbacka.js 回调形式,外面function getAll(cb){     xxModel.find({},cb); }module.exports.getAll=getAll; b.jsvar a=require('a'); a.getAll(function(err,result){    console.log(result); })2.promisea.jsfunction personTest() {   return Person.find({}).exec(); } b.js var a=requre('a'); a.getAll().then(fnction(rseult){     console.log(result); }).catch(function(err){     console.log(err); })
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript