我有一个流星方法,它应该通过传递一个cdn键来处理文件/图像上传,这只是一个字符串。
对于延迟补偿,我想将实际图像blob添加到LocalMongo,这样我就可以添加图像预览。
这是一个问题,因为我想将字符串键传递给我的服务器方法,而我想将文件blob传递给我的客户端方法存根。 Meteor支持这个吗?我不想将图像blob传递给我的服务器(因为这样做会序列化blob /使调用成本高昂)。
我想到的解决方案是仅定义两个具有不同名称的Meteor方法,第一个用于客户端,另一个用于服务器,并且只使用适当的参数调用它们。这是在Meteor中这样做的正确方法吗?
编辑:我上面的解决方案并没有真正起作用,因为Meteor意识到服务器上没有方法(并且核对了我的客户端方法的本地更改)
答案 0 :(得分:1)
只是一个建议,您可以将文件blob保存在Session变量中,并在从客户端调用方法存根时访问该方法,如下所示,
Meteor.methods({
'yourMethod': function (key) {
if (Meteor.isClient) {
var fileBlob = Session.get('my-file-blob'); //set this variable just before calling this method. And don't forget to remove it when template is destroyed.
} else {
}
}
});
就像我说的那样,我没有测试它,只是一个建议。希望它有所帮助。