当我在 EC2 上 运行 nodejs 时出错

error when i run nodejs on EC2

在我 git 将我的应用程序克隆到 EC2 并使用以下命令 运行 之后:

nohup nodejs app.js &

我收到以下错误:

[Error: /home/ubuntu/bluesky-scheduler2/node_modules/agenda/node_modules/mongodb/node_modules/bson/build/Release/bson.node: invalid ELF header]
js-bson: Failed to load c++ bson extension, using pure JS version
[Error: /home/ubuntu/bluesky-scheduler2/node_modules/mongodb/node_modules/bson/build/Release/bson.node: invalid ELF header]
js-bson: Failed to load c++ bson extension, using pure JS version

有什么办法可以解决这个问题吗?

我遇到了同样的问题。无效的 ELF header 表示系统无法加载或执行二进制文件。所以我尝试构建bson。

进入bson模块的根目录。 例如就我而言:mongodb/node_modules/bson 然后执行 make

tldr;

$ cd /home/ubuntu/bluesky-scheduler2/node_modules/agenda/node_modules/mongodb/node_modules/bson/
$ make

我在 windows 框上开发后无意中提交了 git 中的 node_modules/mongodb 文件夹时发生了这种情况。大多数节点模块将在 windows 或 linux 上通用 javascript 和 运行,但是 mongodb 在 [=10] 中具有特定于操作系统的二进制文件=] 文件夹。将代码部署到 linux 会将 windows 二进制文件推送到 linux,因此出现错误。

解决方案是删除 linux 服务器上的 nodemodules/mongodb 目录,然后 运行 npm install 从 [=23] 安装 mongodb 依赖项=] 环境.