0

我正在尝试实现一个照片查看器应用程序,该应用程序将图像 url 及其所属的用户 ID 存储在集合中。当我尝试 Collection.findOne 时,它​​总是返回 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 方法时,它成功返回了想要的对象。我已经在发布和订阅该集合了。

4

1 回答 1

0

您的问题的解决方案:

在插入函数的回调中获取结果,因为插入是异步工作的。

于 2016-02-19T20:45:04.867 回答