将Mongodb数据存储到sails js中的变量中



我得到了recentdate变量的未定义值。当我使用控制台打印值时,它会成功打印值。当我试图将值保存在变量(recentdate(中时,它会给出未定义的。我想把这个值存储在变量中,这样我就可以进一步使用它了。

var recentdate ;
TimeHistory.find().sort([{ CreatedDated: 'DESC' }]).limit(1).exec(function (err, date) {
console.log("RecentDate" + JSON.stringify(date[0].CreatedDated));//print the value sucessfully
recentdate = JSON.stringify(date[0].CreatedDated);//getting undefined value
});

当您将函数作为回调传递时(就像将函数传递给.exec一样,该函数通常异步运行。这意味着传递的函数中的内容可能会在下面的代码之后运行。例如:

console.log('This will run first');
TimeHistory.find({}).exec(function() {
console.log('This will run third and last');
});
console.log('This will run second');

控制台中此代码的输出为:

-> This will run first
-> This will run second
-> This will run third and last

因此,如果您尝试在exec方法下面使用recentDate,那么里面的东西还没有运行,并且recentDate仍然是未定义的。

有很多解决方案,但一个快速而简单的解决方案是将使用recentDate的代码放在回调中:

var recentDate;
TimeHistory.find({}).exec(function(err, results) {
recentDate = results[0].date; // or whatever
// now continue your processing here
});
// don't add any more code down here

相关内容

  • 没有找到相关文章

最新更新