5

基本的にここの指示に従って、Herokuにサンプルのnode.jsアプリをまとめようとしました:https ://devcenter.heroku.com/articles/nodejs

アプリはローカルで正常に実行されますがforeman start、アプリをデプロイするたびにクラッシュします。 私は何が間違っているのですか?

私のProcfile内容:

web: node web.js

私のpackage.json内容:

{
  "name": "testapp",
  "version": "0.0.1",
  "engines": {
      "node": "0.6.15"
    , "npm": "1.1.9"    
  }
  , "dependencies": {
    "tower": "0.4.0-12"
  }
}

私のweb.js内容:

var express = require('express');

var app = express.createServer(express.logger());

app.get('/', function(request, response) {
  response.send('Hello World!');
});

var port = process.env.PORT || 3000;
app.listen(port, function() {
  console.log("Listening on " + port);
});

アプリはデプロイされて起動しますが、毎回クラッシュします。アプリから表示されるログ出力は次のとおりです。

2012-04-27T20:21:31+00:00 heroku[web.1]: State changed from created to starting
2012-04-27T20:21:37+00:00 heroku[web.1]: Starting process with command `node web.js`
2012-04-27T20:21:38+00:00 app[web.1]: 
2012-04-27T20:21:38+00:00 app[web.1]: node.js:201
2012-04-27T20:21:38+00:00 app[web.1]:         throw e; // process.nextTick error, or 'error' event on first tick
2012-04-27T20:21:38+00:00 app[web.1]:               ^
2012-04-27T20:21:38+00:00 app[web.1]: Error: Cannot find module 'express'
2012-04-27T20:21:38+00:00 app[web.1]:     at Function._resolveFilename (module.js:332:11)
2012-04-27T20:21:38+00:00 app[web.1]:     at Function._load (module.js:279:25)
2012-04-27T20:21:38+00:00 app[web.1]:     at Module.require (module.js:354:17)
2012-04-27T20:21:38+00:00 app[web.1]:     at require (module.js:370:17)
2012-04-27T20:21:38+00:00 app[web.1]:     at Object.<anonymous> (/app/web.js:1:77)
2012-04-27T20:21:38+00:00 app[web.1]:     at Module._compile (module.js:441:26)
2012-04-27T20:21:38+00:00 app[web.1]:     at Object..js (module.js:459:10)
2012-04-27T20:21:38+00:00 app[web.1]:     at Module.load (module.js:348:31)
2012-04-27T20:21:38+00:00 app[web.1]:     at Function._load (module.js:308:12)
2012-04-27T20:21:38+00:00 app[web.1]:     at Array.0 (module.js:479:10)
2012-04-27T20:21:39+00:00 heroku[web.1]: Process exited with status 1
2012-04-27T20:21:40+00:00 heroku[web.1]: State changed from starting to crashed
2012-04-27T20:30:01+00:00 heroku[router]: Error H10 (App crashed) -> GET testapp.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
4

3 に答える 3

10

web.jsでエクスプレスが必要なようですが、依存関係にエクスプレスを追加しないのはなぜですか?ローカルコピーにはすでにエクスプレスがインストールされている可能性があるため、エラーは発生しません。TowerにはExpressが必要な場合がありますが、そこからExpressに直接アクセスすることはできません。これは、appディレクトリではなく、Towerのディレクトリにあるサブモジュールです。

于 2012-04-27T20:45:11.443 に答える
0

以前は、これはnpmのバージョンの問題でした。最新バージョンにアップグレードして、少なくともExpressを再インストールすることをお勧めします。

于 2012-04-27T20:42:35.783 に答える
0

package.jsonのdevDependenciesでエクスプレスが定義されていないことを確認してください。そうした場合、実行してもnpm install express --save依存関係に移動しません。

この問題は、vue-cliで作成されたVue.jsプロジェクトで発生しました。これにより、devDependenciesの下にエクスプレスdepが追加されました。

于 2017-09-14T23:09:53.170 に答える