在Javascript中读取本地BSON文件

在Javascript中读取本地BSON文件,javascript,bson,Javascript,Bson,我有一个HTML5游戏。我正在使用webpack/typescript进行开发 我使用require包含了一些数据,如下所示 const dataJson = require('scripts/data/data.json'); 除了bson,我想做同样的事情。我尝试过这样做的天真方法 const dataJson = require('scripts/data/data.bson'); 但这当然会失败,因为没有加载程序(不会使用编译当前没有配置加载程序来处理此文件。) 然后

我有一个HTML5游戏。我正在使用webpack/typescript进行开发

我使用
require
包含了一些数据,如下所示

    const dataJson = require('scripts/data/data.json');
除了bson,我想做同样的事情。我尝试过这样做的天真方法

    const dataJson = require('scripts/data/data.bson');
但这当然会失败,因为没有加载程序(不会使用
编译当前没有配置加载程序来处理此文件。

然后我想在本地包含该文件,加载该文件,然后反序列化bson。或者我想在使用
require
时嵌入
bson
like。这是一些工具生成的数据,因此它将位于数据文件中

我还没弄明白。我试过以下方法。但是这会导致
结果
包含
文件
,或者类似于内容类型的内容(如果作为
readAsDataURL
执行)

我试过的

    const file = new File(['data'], 'assets/data.bson', { type: 'application/bson' });
    const reader = new FileReader();
    reader.onload=(theFile) => {
        if (theFile.target) {
            console.log(theFile.target.result);
        }

    } ;
    reader.readAsDataURL(file);
    //reader.readAsBinaryString(file);
加载本地二进制文件的正确方法是什么?大概,一旦我有了数据,我就可以从
bson
包调用
反序列化

好的,我在这里加了一些修正。 我读取文件的方法是错误的。我知道understand
File
实际上会创建一个文件。所以,当它被传递到
FileReader
时,它将获得传入的两个
位的值

我发现我可以通过两种方式获取本地文件。我可以使用
XMLHttpRequest
以及
原始加载程序
加载程序

但是一旦我这样做了。我似乎无法使用
bson
将内容转换为JSON。
反序列化
序列化
解析
字符串化
的任何变体都有一些问题

是否有人碰巧拥有将BSON内容转换为Javascript对象的正确方法

请注意,BSON是使用
pymongo
从python生成的。我生成BSON的代码如下所示

            with open(args.output_bson, 'wb') as fp:
                encoded = bson.encode(data_meta.to_dict())
                fp.write(encoded)
是一本字典。我同时输出JSON(使用
JSON
)和BSON

我还使用
bsondump
测试了该文件,它确实转换为JSON。因此,我加载的文件似乎是有效的。

您可以使用

然后打电话:

BSON.deserialize(theFile.target.result);

谢谢你的回复。不幸的是,这不起作用。我用新的发现更新了我的问题。你明白了吗?