Mongodb Meteor.methods()将数组转换为对象
我正在Meteor.js中使用该库,并尝试将立体声音频缓冲区存储到MongoDB 在客户机上,Mongodb Meteor.methods()将数组转换为对象,mongodb,meteor,buffer,blob,html5-audio,Mongodb,Meteor,Buffer,Blob,Html5 Audio,我正在Meteor.js中使用该库,并尝试将立体声音频缓冲区存储到MongoDB 在客户机上,console.log(buffers)给出了表单的数组 [Float32Array, Float32Array] 但是在将其传递给Meteor.methods和Meteor.call('newSound',buffers)方法之后 Meteor.methods({ newSound: function(buffers) { console.log(buffers);
console.log(buffers)
给出了表单的数组
[Float32Array, Float32Array]
但是在将其传递给Meteor.methods和Meteor.call('newSound',buffers)方法之后
Meteor.methods({
newSound: function(buffers) {
console.log(buffers);
}
}
我得到的数组如下所示:
[Object, Object]
为什么Meteor会将阵列转换为对象?检索时,我需要将数据用作数组缓冲区,并可以使用
var buffers = new Array(
_.toArray(buffers[0]),
_.toArray(buffers[1])
);
但我关心的是表现。我应该在将缓冲区存储到数据库之前将其转换为blob,然后在检索它们时重新转换吗?只有与EJSON兼容的类型会自动从JSON对象转换为实际的JavaScript类型。在这里阅读关于EJSON的内容: 我不相信Meteor团队已经让EJSON兼容了
Float32Array
。有关EJSON以及如何使类型兼容的更多信息,请观看以下视频:
还有一些可能对您有所帮助。谢谢,我不知道从哪里开始。文档说EJSON支持“
JavaScript Uint8Array
或EJSON.newBinary
”的结果。我发现了一篇关于MDN的有用文章,解释了JavaScript中的类型化数组:。我没有理解的是,这些数组实际上是相同二进制数据的不同视图。