Mongodb MongoClient.connect()为Raspberry Pi ARM的总线错误

我曾尝试在x64计算机上执行这个节点脚本,它似乎工作正常。

但是,同样的脚本在Raspberry Pi上运行时会报告总线错误。 它给出了[6047.715610]未处理的故障:alignmentexception错误,并在下一行报告错误,作为总线错误。 看来这个错误源于MongoClient.connect()。

该脚本利用MongoClient模块中的MongoClient和GridStore。 另外,我试图从这个仓库重新安装(这似乎做了一个gyp-rebuild ),并且失败了。

是否有任何应该设置的编译选项?

我设法通过从github中提取repo来修复错误,编辑bson.h ,并对其进行node-gyp rebuild bson.h node-gyp rebuild

显然,错误是由ARM设备不支持的编译选项引起的。 以防万一谁有兴趣

  1. Git克隆库在这里: https://github.com/mongodb/node-mongodb-nativehttps://github.com/mongodb/node-mongodb-native
  2. 打开./node-mongodb-native/node_modules/bson/ext/bson.h
  3. #define USE_MISALIGNED_MEMORY_ACCESS1更改为0
  4. 做一个node-gyp rebuild来重新编译这个库。

这对我有效。