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设备不支持的编译选项引起的。 以防万一谁有兴趣
- Git克隆库在这里:
https://github.com/mongodb/node-mongodb-native
:https://github.com/mongodb/node-mongodb-native
- 打开
./node-mongodb-native/node_modules/bson/ext/bson.h
- 将
#define USE_MISALIGNED_MEMORY_ACCESS
从1
更改为0
- 做一个
node-gyp rebuild
来重新编译这个库。
这对我有效。