我需要将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进去是空对象,
//写在回调外面,那就取不到这个查询结果
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
mongoose 有两种调用方式,1种callbacl,1种promise。
比如定义个getAll
1.callback
2.promise
promise?
代码参考这里其实你想要的地方能够得到查询出来的结果。比如,现在有一个页面需要“宠物”数据。那么我就在req里取出来这个宠物的id,然后用宠物model查找这个id的宠物。
具体做法一次是callback方式,promise方式,自定义方法的callback方式和自定义方法的promise方式: