流星集合 find() 方法未定义,即使它已订阅
Meteor collection find() method is undefined even though its subscribed
我正在尝试实现一个照片查看器应用程序,它存储图像 url 并且它属于集合中的用户 ID。当我尝试 Collection.findOne 该值时,它总是 returns null.
var name = Meteor.user().username;
var message = $('.action-textarea').val();
var userId = Meteor.userId();
var file = $("#input-photo").get(0).files[0];
if(file) {
fsFile = new FS.File(file);
var id = PostGeneralImages.insert(fsFile, function(err, result) {
if(err) {
throw new Meteor.Error(err);
} else {
var imageLoc = '/cfs/files/PostImages/' + result._id;
PostImages.insert({
generalId: result._id,
userId: Meteor.userId(),
username: Meteor.user().username,
imageLoc: imageLoc
});
}
});
}
var imagePath = PostImages.findOne({generalId: id._id}).imageLoc;
console.log(imagePath);
imagePath 在控制台上未定义。但是当我在控制台中尝试 findOne 方法时,它成功地 returns 了想要的对象。我已经在发布和订阅该合集了。
您的问题的解决方案:
在插入函数的 回调 中获取结果,因为插入是异步进行的。
我正在尝试实现一个照片查看器应用程序,它存储图像 url 并且它属于集合中的用户 ID。当我尝试 Collection.findOne 该值时,它总是 returns null.
var name = Meteor.user().username;
var message = $('.action-textarea').val();
var userId = Meteor.userId();
var file = $("#input-photo").get(0).files[0];
if(file) {
fsFile = new FS.File(file);
var id = PostGeneralImages.insert(fsFile, function(err, result) {
if(err) {
throw new Meteor.Error(err);
} else {
var imageLoc = '/cfs/files/PostImages/' + result._id;
PostImages.insert({
generalId: result._id,
userId: Meteor.userId(),
username: Meteor.user().username,
imageLoc: imageLoc
});
}
});
}
var imagePath = PostImages.findOne({generalId: id._id}).imageLoc;
console.log(imagePath);
imagePath 在控制台上未定义。但是当我在控制台中尝试 findOne 方法时,它成功地 returns 了想要的对象。我已经在发布和订阅该合集了。
您的问题的解决方案:
在插入函数的 回调 中获取结果,因为插入是异步进行的。