使用mongoose将数据存储在全局变量中

时间:2016-05-13 11:53:58

标签: node.js mongoose promise

我想将数据存储在一个全局变量中的MongoDB集合中,但我认为这不是最佳解决方案

var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
var myQuery = null;
// some other code
myQuery = Config.find({}).limit(1).exec(); // Config is a model
//later
 console.log(myQuery._rejectionHandler0[0]);

结果是正确的:

{ _Geolocalisation: { _latitude: '123', _longitude: '145' },
  __v: 0,
  _Token: 'aaa',
  _Dname: '10',
  _Adresse: 'v56',
  _Location: 'bs',
  _FullName: 'aa',
  _id: 573509f775c4dcdc1d26c101 }

1 个答案:

答案 0 :(得分:0)

正如您所见,.exec()调用会返回一个承诺,而不是结果本身。

因此,您需要执行以下操作才能稍后访问mQuery的结果:

mQuery.then(function(results) {
    console.log(results);
})
.catch(function(err) {
    console.error(err);
});