node.js - AWS BeanstalkへのNodeJSデプロイのエラー

原文 node.js amazon-web-services express nginx amazon-elastic-beanstalk

AWS beanstalkにデプロイするときにいくつかの問題に遭遇しました。
最初はNode.jsアプリに問題があると思っていましたが、次にクリーンインストールを試しました。
WebStormで空のNode.js Expressアプリを作成しました。 nginx 1.6.2で実行されるAWS Beanstalkで新しいアプリケーションを作成しました
次に、アプリを圧縮してBeanstalkコンソールからデプロイします。
アップロードは正常に完了しましたが、アプリケーションを実行すると、502の不正なゲートウェイが表示されます。
Web Stormがポート3000で実行されるアプリを作成するため、デフォルトのポートを変更しようとしました。そのため、8081に変更しました。それでもエラーが発生します。ログでエラーを検索すると、次のことがわかります。

/var/log/nodejs/nodejs.log

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/app/current/app.js:8:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)module.js:340
throw err;

Error: Cannot find module '/var/app/current/routes/index'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/app/current/app.js:8:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

module.js:340


相対パスが原因でノードがモジュールを見つけられないことが問題であることは明らかなので、絶対パスを使用するように相対パスを持つすべてのエントリを変更しました。例えば

var app = require('../app');


に変わった

var path = require('path');
var app = require(path.join(__dirname, '../app'));


それでも同じエラーが発生します。

また、nginxログに次のエラーが表示されます。

/var/log/nginx/error.log

-------------------------------------
2014/12/05 14:28:35 [error] 23444#0: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.25.31, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "nodesampleapp-env.elasticbeanstalk.com"


なぜこれが起こっているのか?
どんな助けにも感謝します。
答え
package.jsを修正してください!

私の場合、ノードのファイル名が間違っていました。

{
  "name": "your application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": 
    {
      "start": "node app_bot.js"
    },

    ...
関連記事

node.js - loopback.jsアプリケーションのモデルの可視化

javascript - ユーザー入力-JavaScriptノードjs

angularjs - ng-scenarioをフレームワークとしてKarmaおよびJasmineでコントローラーをテストするときにスコープ変数が未定義

android - 非ルートAndroidのNode.js

node.js - ノード:npm ERR! npmインストールでキャッシュ統計を取得できませんでした

javascript - コマンドラインクライアントと対話する

javascript - node.jsのjQueryパッケージに$ .ajaxメソッドがないのはなぜですか?

angularjs - スキーマの配列に追加しようとするMEANスタックアプリの不正なリクエスト

android - SocketIOを使用してAndroidクライアントをNode.jsサーバーに接続する方法

javascript - 送信されたデータが有効な数値ペアであることを確認するにはどうすればよいですか?