我在EC2上运行nodejs时出错

时间:2015-03-16 03:45:12

标签: node.js amazon-web-services amazon-ec2

在我将我的应用程序克隆到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

任何想法我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我有同样的问题。无效的ELF标头意味着系统无法加载或执行的二进制文件。所以我试着建立bson。

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

tldr;

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

答案 1 :(得分:0)

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

解决方案是删除linux服务器上的npm install目录,然后运行public void draw(ShapeRenderer sRenderer) { sRenderer.begin(ShapeType.Filled); sRenderer.setColor(1.0f, 0.0f, 0.0f, 0.0f); sRenderer.identity(); sRenderer.translate(1.0f, 1.0f, 0); sRenderer.rotate(0.0f, 0.0f, 1.0f, (float) Math.toDegrees(getBody().getAngle())); sRenderer.circle(0.0f, 0.0f, 1.0f); sRenderer.end(); } 从linux环境安装mongodb dependancies。