我需要将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进去是空对象, //写在回调外面,那就取不到这个查询结果
1 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
mongoose 有两种调用方式,1种callbacl,1种promise。
比如定义个getAll
1.callback
a.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.promise
a.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); })
添加回答
举报
0/150
提交
取消