当我在EC2上运行nodejs时出错

我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标头意味着一个二进制文件,不能被系统加载或执行。 所以我试图build立bson。

去bson模块的根目录。 例如在我的情况下: mongodb/node_modules/bson然后执行make

tldr;

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

这发生在我身上的时候,我在无意中提交了一个窗口框后,在git中的node_modules/mongodb文件夹。 大多数节点模块都是通用的JavaScript,可以在Windows或Linux上运行,但是mongodb具有特定于node_modules/mongodb文件夹中操作系统的二进制文件。 将代码部署到Linux将Windows二进制文件推送到Linux,因此出现错误。

解决办法是删除linux服务器上的nodemodules/mongodb目录,然后运行npm install从linux环境中安装mongodb依赖。